繁体   English   中英

mongodb:在其他文档中按条件查找所有记录

[英]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类型的文档,但不存在具有相同idcompleted

所以它只会找到:

  {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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM