0

我试图让这样的事情起作用:

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包含日期范围的组。

4

2 回答 2

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

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

于 2013-05-30T00:40:54.207 回答
0

您没有$or正确使用 - 这是为了合并整个查询。

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

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

编辑:根据您的编辑,您需要使用实际示例更新示例代码,因为如给定的那样,您的问题已通过$in.

于 2013-05-30T00:39:12.673 回答