scanAndOrder: true Explainの出力では、クエリがドキュメントを取得し、出力が返される前にメモリ内でそれらを並べ替える必要があることを示しています。これはコストのかかる操作であり、クエリのパフォーマンスに影響を与えます。
scanAndOrder: trueの存在 nscannedの違いも同様です n Explain出力で、クエリが最適なインデックスを使用していないことを示しています。この場合、コレクションスキャンを実行する必要があるようです。 sortにインデックスキーを含めることで、この問題を軽減できる可能性があります。 基準。私のテストから:
db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()
スキャンと注文を必要とせず、nを返します およびnscanned あなたが探しているレコードの数の。これは、hashtagsでの並べ替えも意味します キー。これは役立つ場合と役に立たない場合がありますが、クエリのパフォーマンスを向上させる必要があります。