Menemukan jawaban saya dalam pertanyaan ini:Urutan $lt dan $gt dalam kueri rentang MongoDB
Indeks saya adalah indeks multikunci (pada tags
) dan saya menjalankan kueri rentang (pada post_time
). Tampaknya
, MongoDB tidak dapat menggunakan kedua sisi rentang sebagai filter dalam kasus ini, jadi ia hanya mengambil $gte
klausa, yang datang lebih dulu. Karena batas bawah saya adalah post_time
terendah nilai, MongoDB mulai memindai semua objek.
Sayangnya, ini bukan keseluruhan cerita. Mencoba memecahkan masalah, saya juga membuat indeks non-multikey tetapi MongoDB bersikeras menggunakan yang buruk. Itu membuat saya berpikir bahwa masalahnya ada di tempat lain. Akhirnya, saya harus menghapus indeks multikey dan membuatnya tanpa tags
bidang. Semuanya baik-baik saja sekarang.