最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在子集MongoDB的多个条件

运维笔记admin9浏览0评论

在子集MongoDB的多个条件

在子集MongoDB的多个条件

我有这样一个DB:

Job
  ID
  Name
  LeaderID
  Workers
    ID
    Enabled
Person
  ID
  Name

要检索所有的工作与ID id一个人不是领导或工作人员之一,我有一个工作查询:

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

那么,如何可以修改这个,以便它只能与"Enabled": true相匹配的工人。我想$or:[{"LeaderID": id}, {$and: [{"Workers.ID": id}, {"Workers.Enabled": true}]}],但我敢肯定它不会工作。

回答如下:

您可以使用$elemMatch运营商的筛选工人为真正启用。例如,你可以这样做:

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

})

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论