您好具有在格式的文档过滤一个阵列的子阵列:通过一些标准
{
"_id":"someId",
"someArray":[
{
"subId":1,
"subArray":[
{
"field1":"A",
"filterMe":"NO"
},
{
"field1":"B",
"filterMe":"YES"
}
]
},
{
"subId":2,
"subArray":[
{
"field1":"C",
"filterMe":"YES"
},
{
"field1":"D",
"filterMe":"NO"
}
]
}
]
}
如何过滤基于一些标准的子阵列。如果字段filterMe为“YES”,则示例过滤出subArray。所以最后输出json应该是这样的
{
"_id":"someId",
"someArray":[
{
"subId":1,
"subArray":[
{
"field1":"A",
"filterMe":"NO"
}
]
},
{
"subId":2,
"subArray":[
{
"field1":"D",
"filterMe":"NO"
}
]
}
]
}
我试图在下面的方式,但是,它过滤整个subArray。
db.testJson.aggregate([
{ $project: {
'someArray.subArray': {
$filter: {
input: '$someArray.subArray',
as: 'input',
cond: {$eq: ["$$input.filterMe", "YES"]}
}}
}}
]);
看看这是否有帮助。 https://stackoverflow.com/questions/29071748/find-in-double-nested-array-mongodb – Veeram
@Veeram这不是什么被问到这里 –
@Neil Lunn被推荐的帖子有一个答案,不完全是你目前的答案没有额外的'$ filter'。我错过了什么 ? – Veeram