この質問で私の答えが見つかりました:MongoDB範囲クエリでの$ltと$gtの順序
私のインデックスはマルチキーインデックスです(tags
)そして範囲クエリを実行しています(post_time
)。 どうやら
、この場合、MongoDBは範囲の両側をフィルターとして使用できないため、$gte
を選択するだけです。 最初に来る節。私の下限はたまたま最低のpost_time
値を指定すると、MongoDBはすべてのオブジェクトのスキャンを開始します。
残念ながら、これがすべてではありません。この問題を解決するために、マルチキー以外のインデックスも作成しましたが、MongoDBは悪いインデックスを使用することを主張しました。それで問題は他のところにあると思いました。最後に、マルチキーインデックスを削除し、tags
なしで作成する必要がありました。 分野。今はすべて順調です。