如何在Mongo中进行多个OR查询?

时间:2013-05-30 00:35:16

标签: mongodb database nosql

我正试图让这样的事情发挥作用:

db.Event.find({
  startDate: {
    $or: [
      {$and: [
          {$gte: '2013-05-12'}
          {$lt: '2013-05-13'}
      ]},
      {$and: [
          {$gte: '2013-05-12'}
          {$lt: '2013-05-13'}
      ]}
    ]
  },
  foo: {
    ...
  }
});

基本上我有一堆过滤器,其中一个是startDate,需要匹配其中一个包含日期范围的$and组。

2 个答案:

答案 0 :(得分:1)

db.User.find({
    $or: [{firstName:'Foo'}, {firstName:'Bar'}]
  ,
    $or: [{lastName:'Baz'}, {lastName:'Qux'}]
  }
});

你需要方形或大括号内的花括号

答案 1 :(得分:0)

您没有正确使用$or - 这是用于联合整个查询。

在这种情况下,您只需要$in

db.User.find({
  firstName: {
    $in: ['Foo', 'Bar']
  },
  lastName: {
    $in: ['Baz', 'Qux']
  }
});

编辑:根据您的编辑,您需要使用实际示例更新示例代码,因为在给定的情况下,您的问题已通过$in解决。