MongoDB V:3.6
我有一个包含6个元素的数组,每个元素都有2个值:fileName
和count
我想获取数组中所有计数为0的元素
我尝试使用此代码,但它仅返回一个元素,而不是所有匹配的元素。
await User.findOne({email:email},
{ ackFiles: { $elemMatch: { count: 0 } } });
仅返回以下内容:
{ _id: 5b55d0fd9dc644051c801058,
ackFiles: [ { fileName: 'terms_of_use_vad', count: 0 } ] }
答案 0 :(得分:1)
db.getCollection('').aggregate([{"$match": {"email": ""}},
{"$group" : {"_id" : {"email": "$email"}}},
{
"$project": {
"files": {
"$filter": {
"input": "$ackfiles",
"as": "file",
"cond": {
"$in": ["$$file.count", [0]]
}
}
}
}
}
])