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