db.collection.estimatedDocumentCount()
MongoDB とドライバー
このページでは、 メソッドについて説明します。 MongoDBドライバーで同等のメソッドを確認するには、mongosh
プログラミング言語の対応するページを参照してください。
定義
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の 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({})