[英]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.