2
私は次のようになります。Mongoのクエリを持っている:
その「スケジュール」(オブジェクトのリストである)フィールドの要素が含まれている項目のためのコレクションを検索し{'schedule': {'$elemMatch': {'time': {'$gt': start, '$lte': end}}}}
「時間」フィールドは開始と終了の間にあります。
mongoのインデックスがどのようにこの状況に対応しているかは不明です。このクエリが定期的に実行される場合、ベストプラクティスとは何でしょうか?
良い点。スケジュールがオブジェクトのリストではなくintのリストで、{'schedule':{'$ gt':start、 '$ lte':end}}した場合、それはうまくいくとは思えませんでした要素>開始と要素<=終わりの両方を持つが、必ずしも同じ要素である必要はないすべての項目。私はあなたのバージョンが動作していることを確認し、より明確です。ありがとうございました。 –
非常にビザールな動作!これは、インデックスがschedule.time上に構築されていても、そのようなインデックスがない場合には機能しません。 –
Kevin:バージョン依存の配列に対するインデックス付き/インデックスなしの範囲クエリに関連するバグがあります。最新バージョンで動作しないサンプルがある場合は、jiraの問題を作成してください:http://jira.mongodb.org/ –