不知道如何用语言正确地表达任务。
假设集合中有这样的文档:
{id:1, type: 'added' }, {id:1, type: 'completed' }, {id:2, type: 'added' }, {id:3, type: 'added' },
查找类型为的所有文档 added 不存在具有相同属性的记录 id 和 completed
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"] } }} ])
Output
[ { "_id": 3, "types": [ "added" ] }, { "_id": 2, "types": [ "added" ] } ]