これはmongodb 2.0.4を使用しています。アップグレードを考えていますが、私たちのセットアップではアップグレードが容易ではないため、アップグレードせずにこれを修正できるかどうかを確認したいだけです.
「検索」部分が次のようになる更新クエリがたくさんあります。
timestamp:
{
$gte: ISODate('xxxxx'),
$lt: ISODate('xxxxx')
},
id: "string"
processed: false
これは基本的に、特定の ID の特定の日付範囲内のレコードを検索し、false から true に処理された更新を行います (これは「ワーカー」プロセスです)。
3 つのフィールドすべて (および _id) を含むインデックスを作成しようとしましたが、explain()
それでもindexOnly: false
. 奇妙なことに、indexBounds に対してもこれを返します。
"indexBounds" : {
"processed" : [
[
false,
false
]
]
}
誰かがこれを修正してmongodbがインデックスを適切に使用する方法(カバーインデックス)についてのヒントを教えてもらえますか、それとも日付範囲では単に不可能ですか?