db.collection.estimatedDocumentCount()
MongoDB とドライバー
このページでは、 mongosh
メソッドについて説明します。MongoDB ドライバーで同等のメソッドを確認するには、ご使用のプログラミング言語の対応するページを参照してください。
定義
動作
Mechanics
db.collection.estimatedDocumentCount()
は、クエリフィルターは使用せず、代わりにメタデータを使用してコレクションの数を返します。
ビューの場合。
メタデータはありません。
ドキュメント数は、ビュー定義で集計パイプラインを実行することによって計算されます。
ドキュメント数を迅速に見積もることはできません。
シャーディングされたクラスター
シャーディングされたクラスターでは、結果のカウントで孤立したドキュメントが正しく除外されません。
不正なシャットダウン
このセクションは、コレクションにのみ適用されます。
不正なシャットダウンの後は、カウントが不正確になる可能性があります。
mongod
Wired Tiger のストレージ エンジンを使用する の不正シャットダウン後、db.collection.estimatedDocumentCount()
によって報告されるカウント統計が不正確になる可能性があります。
ドリフトの量は、チェックポイントからクリーン シャットダウンまでの間に実行された挿入、アップデート、または削除操作の数によって異なります。チェックポイントは通常、60 秒ごとに発現します。ただし、デフォルト以外の --syncdelay
設定で実行されている mongod
インスタンスでは、チェックポイントの頻度が増減する可能性があります。
不正なシャットダウン後に統計を復元するには、mongod
の各コレクションに対して validate
を実行します。
不正なシャットダウン後:
クライアントの切断
MongoDB 4.2以降では、 db.collection.estimatedDocumentCount()
を発行したクライアントが操作の完了前に切断した場合、MongoDB は killOp
を使用してdb.collection.estimatedDocumentCount()
を終了対象としてマークし 。
カウントとトランザクション
トランザクションでdb.collection.estimatedDocumentCount()
を使用すると、結果のカウントはコミットされていないマルチドキュメントトランザクションを除外しません。
例
次の例では、 db.collection.estimatedDocumentCount()
を使用して、 orders
コレクション内のすべてのドキュメントの数を取得します。
db.orders.estimatedDocumentCount({})