2

私はこの単純なクエリをマングースでうまく機能させようとしています。明日発生するすべてのイベントをカンファレンスセンターで見つけてください。イベントごとに、スケジュールは、日付タイプとしての特定の開始時刻、または文字列形式「2012/11/16」の日付の配列のいずれかになります。ただし、{place:'conference center'}の条件がない場合は、同じquery.or条件が機能するため、このクエリを間違って作成している可能性があると思いました。私は今のところ運がありません、提案/助けてください?「明日」条件は「場所」条件に追加されたフィルターなので、クエリチェーンを使用しています。

ありがとう!

    Event.find({place:'conference center'}).or([
      { 
        'schedule.beginAtUtc' : { $gte: startOfTomorrow },
        'schedule.beginAtUtc' : { $lt: endOfTomorrow }
      },

      {
        'schedule.dates' : '2012/11/17'
      }
    ]);
4

1 に答える 1

4

'schedule.beginAtUtc'オブジェクトが同じ名前の2つのフィールドを持つことはできないため、2つのフィールドを1つに結合する必要があります。

このような:

Event.find({place:'conference center'}).or([
  { 
    'schedule.beginAtUtc' : { $gte: startOfTomorrow, $lt: endOfTomorrow }
  },

  {
    'schedule.dates' : '2012/11/17'
  }
]);
于 2012-11-18T02:43:27.190 に答える