这个问题与其他问题略有不同,因为我需要获得整个文档,而不仅仅是特定字段。
我需要根据嵌套数组的最后一个元素值来过滤文档(所有文档,而不仅仅是特定字段)。(doc.array[i].innerArray[innerArray.length - 1].desiredField
)
文档如下所示:
[
{
"_id": 0,
"matches": [
{
"name": "match 1",
"ids": [
{
"innerName": "1234"
},
{
"innerName": "3"
}
]
}
]
},
{
"_id": 1,
"matches": [
{
"name": "match 5",
"ids": [
{
"innerName": "123"
},
{
"innerName": "1"
}
]
},
{
"name": "match 5",
"ids": [
{
"innerName": "1"
},
{
"innerName": "1234"
},
]
},
]
}
]
因此,如果我们根据innerName = '1234'进行过滤,结果如下:
{
"_id": 1,
"matches": [
{
"name": "match 5",
"ids": [
{
"innerName": "123"
},
{
"innerName": "1"
}
]
},
{
"name": "match 5",
"ids": [
{
"innerName": "1"
},
{
"innerName": "1234"
},
]
}
2条答案
按热度按时间vc6uscn91#
一个选项是:
了解它在playground example上的工作原理
egmofgnx2#
另一个选项:
解释道:
对于最后一个嵌套数组元素中包含“1234”的文档,仅匹配数组大小〉0的文档。
Playground: