簡體   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