簡體   English   中英

MongoDB子集上的多個條件

[英]MongoDB multiple condition on subset

我有一個這樣的數據庫:

Job
  ID
  Name
  LeaderID
  Workers
    ID
    Enabled
Person
  ID
  Name

要檢索id為id的人是Leader或Workers之一的所有工作,我有一個有效的查詢:

find([{
  $match: {
    $or:[{"LeaderID": id}, {"Workers.ID": id}]
  },
  ...
]);

因此,我該如何修改它,使其僅與具有"Enabled": true匹配"Enabled": true 我想到了$or:[{"LeaderID": id}, {$and: [{"Workers.ID": id}, {"Workers.Enabled": true}]}]但我確定它不會工作。

您可以使用$ elemMatch運算符過濾啟用為true的工作程序。 例如,您可以這樣做:

db.collection.find( {
$or: [
      {"LeaderID": 2}, 
      {"Workers": { $elemMatch : {"ID": 2, "Enabled" :false} } }
     ]

})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM