[英]mongodb: find all records by condition in other documents
不确定如何正确地用文字表述任务。
假设集合中有这样的文档:
{id:1, type: 'added' },
{id:1, type: 'completed' },
{id:2, type: 'added' },
{id:3, type: 'added' },
查找所有added
类型的文档,但不存在具有相同id
和completed
所以它只会找到:
{id:2, type: 'added' },
{id:3, type: 'added' },
您可以使用以下聚合
db.collection.aggregate([
{ "$group": {
"_id": "$id",
"types": { "$push": "$type" }
}},
{ "$match": {
"types": {
"$in": ["added"],
"$nin": ["completed"]
}
}}
])
[
{
"_id": 3,
"types": [
"added"
]
},
{
"_id": 2,
"types": [
"added"
]
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.