mongo(バージョン2.4と3.2)コレクションのドキュメント数を実行しています。コレクションは非常に大きく、3821085文書です。私は参照番号_id
ですべての文書を数える必要があります。このクエリは非常に長い時間がかかるmongodbカウントとカウントで検索
db.SampleCollection.find({"field._id" : ObjectId("UUID")}).count()
db.SampleCollection.count({"field._id" : ObjectId("UUID")})
:私は2つの異なるクエリを試してみました。私はそれを完了させていない多くの時間、5分以上と私は怖がってそれを殺す。
このコレクションについては、field._id
はインデックスではありません。このクエリでインデックスを使用する関連情報はありません。
mongoのドキュメントを数えるのに適していますか?
UPDATE:
私は、フィールドfield._id
にインデックスが必要であることを理解しています。フィールドのインデックスを持っていれば、大きなコレクションでより良いパフォーマンスを得ることができますdb.SampleCollection.find(...).count()
またはdb.SampleCollection.count(...)
?または、2つの間に違いはありませんか?
あなたはこれらのクエリの両方がフルコレクションのスキャンを行う必要があり、取るために起こっていることを意味し、「field._idx」にインデックスを持っていない場合しばらく。 –
@soundslikeodd私は答えを更新しました。 –