scanAndOrder: true
dalam output jelaskan menunjukkan bahwa kueri harus mengambil dokumen dan kemudian mengurutkannya dalam memori sebelum output dikembalikan. Ini adalah operasi yang mahal, dan akan berdampak pada kinerja kueri Anda.
Adanya scanAndOrder: true
serta perbedaan nscanned
sebuah n
pada output explain menunjukkan bahwa query tidak menggunakan indeks yang optimal. Dalam hal ini tampaknya perlu melakukan pemindaian koleksi. Anda mungkin dapat mengatasi masalah ini dengan memasukkan kunci indeks di sort
kriteria. Dari pengujian saya:
db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()
Tidak memerlukan pemindaian dan pemesanan, dan mengembalikan n
dan nscanned
dari jumlah catatan yang Anda cari. Ini juga berarti menyortir hashtags
key, yang mungkin berguna atau tidak bagi Anda, tetapi akan meningkatkan kinerja kueri.