0

私は次のようなコレクションのリクエストをよく見つけます:

{'$and': [{'time': {'$lt': 1375214400}},
          {'time': {'$gte': 1375128000}},
          {'$or': [{'uuid': 'test'},{'uuid': 'test2'}]}
         ]}

どのインデックスを作成する必要がありますか: 複合、2 つの単一、またはその両方?

uuid - データコレクターの名前。時間 - タイムスタンプ

指定された時間間隔で 1 つまたは少数のコレクターによって収集されたデータを取得したいと考えています。

4

1 に答える 1

2

あなたのクエリは、の代わりに$andand を使用せずに書く方が良いでしょう:$in$or

{
  'time': {'$lt': 1375214400, '$gte': 1375128000},
  'uuid': {'$in': ['test', 'test2']}
}

次に、最適なクエリ パフォーマンスのために、timeとの両方をカバーする複合インデックスが必要であることは明らかです。uuidただし、 を使用して、インデックスが期待どおりに使用されていることを常に確認することが重要ですexplain()

于 2013-07-30T14:02:44.400 に答える