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: {
    ...
  }
});

基本的に、私はたくさんのフィルターを持っています。そのうちの 1 つは です。これは、日付の範囲を含むグループstartDateの 1 つと一致する必要があります。$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 に答える