AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ドキュメントをカウント

このガイドでは、コレクション内のドキュメント数の正確な数と推定値を取得する方法を学びます。

このガイドの例では、 Atlasサンプルデータセットsample_restaurants.restaurantsコレクションを使用します。 MongoDB Atlasクラスターを無料で作成して、サンプルデータセットをロードする方法については、開始 を参照してください。

重要

プロジェクトリ アクター ライブラリ

このガイドでは、プロジェクト Reactive ライブラリを使用して、 Java Reactive Streams ドライバー メソッドによって返された Publisher インスタンスを消費します。Project Reactive ライブラリとその使用方法の詳細については、React ドキュメントの使用開始を参照してください。このガイドでは Project React ライブラリ メソッドをどのように使用しているかについて詳しくは、 「 MongoDBへのデータの書込み 」ガイドを参照してください。

コレクション内のドキュメントの数をカウントするには、 countDocuments()メソッドを使用します。 特定の検索条件に一致するドキュメントの数をカウントするには、クエリフィルターをcountDocuments()メソッドに渡します。

クエリの指定の詳細については、「 クエリの指定 」を参照してください。

コレクション内のすべてのドキュメントの数を返すには、次の例に示すように、 countDocuments()メソッドを呼び出し、パラメータを渡しません。

Publisher<Long> countPublisher = restaurants.countDocuments();
Mono.from(countPublisher).doOnNext(System.out::println).blockLast();

特定の検索条件に一致するドキュメントの数を返すには、次の例に示すように、 countDocuments()メソッドでクエリを指定します。 クエリを指定する方法の詳細については「 クエリの指定」ガイドを参照してください。

Publisher<Long> countPublisher = restaurants.countDocuments(
eq("cuisine", "Italian"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

メソッドに任意のパラメータを渡すことで、 countDocuments()メソッドの動作を変更できます。 CountOptionsクラスは、 countDocuments()メソッドの動作を変更するメソッドを提供します。 CountOptionsクラスを使用するには、クラスの新しいインスタンスを構築し、そのメソッドの 1 つ以上を呼び出して カウント操作を変更します。 これらのメソッド呼び出しを連鎖させることができます。

カウント操作の動作を変更するには、クラスインスタンスと連鎖されたメソッド呼び出しをcountDocuments()メソッドの最後の引数として渡します。

以下の表では、 CountOptionsクラスのメソッドを説明しています。

方式
説明

collation(Collation collation)

結果をソートするときに使用する言語照合の種類を指定します。 詳細については、MongoDB Server マニュアルの 「照合」 を参照してください。

comment(BsonValue comment)

操作に BsonValue コメントを付けます。 詳細については、 MongoDB Serverマニュアルの 「挿入コマンド フィールドのガイド」を参照してください。

comment(String comment)

操作に String コメントを付けます。 詳細については、 MongoDB Serverマニュアルの 「挿入コマンド フィールドのガイド」を参照してください。

hint(Bson hint)

操作のインデックスを Bson 値として設定します。 詳細については、 MongoDB Serverマニュアルの ヒント ステートメントを参照してください。

hintString(String hint)

操作のインデックスを String 値として設定します。 詳細については、 MongoDB Serverマニュアルの ヒント ステートメントを参照してください。

limit(int limit)

カーソルが返すドキュメントの最大数の制限を設定します。 詳細については、 MongoDB Server のドキュメントの「 カーソル 」を参照してください。

skip(int skip)

クエリが結果を返す前にスキップするドキュメントの数を設定します。 詳細については、 MongoDB Serverマニュアルの skip を参照してください。

次のコードでは、 countDocuments()メソッドを使用して、 cuisine値が"Italian"であるrestaurantsコレクション内のすべてのドキュメントをカウントします。 また、コメント"Count all Italian restaurants"Stringとして操作に添付します。

Publisher<Long> countPublisher = restaurants.countDocuments(
eq("cuisine", "Italian"),
new CountOptions().comment("Count all Italian restaurants"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

estimatedDocumentCount()メソッドを呼び出すと、コレクション内のドキュメント数の推定値を取得できます。 メソッドは、コレクションメタデータに基づいてドキュメントの数を推定します。これは、正確なカウントを実行するよりも高速である可能性があります。

次の例では、 コレクション内のドキュメントの数を見積ります。

Publisher<Long> countPublisher = restaurants.estimatedDocumentCount();
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

メソッドに任意のパラメータを渡すことで、 estimatedDocumentCount()メソッドの動作を変更できます。 EstimatedDocumentCountOptionsクラスは、 estimatedDocumentCount()メソッドの動作を変更するメソッドを提供します。 EstimatedDocumentCountOptionsクラスを使用するには、クラスの新しいインスタンスを構築し、そのメソッドの 1 つ以上を呼び出して カウント操作を変更します。 これらのメソッド呼び出しを連鎖させることができます。

カウント操作の動作を変更するには、クラスインスタンスと連鎖されたメソッド呼び出しをestimatedDocumentCount()メソッドの唯一の引数として渡します。

次の表では、 estimatedDocumentCount()をカスタマイズするために設定できるオプションについて説明しています。

プロパティ
説明

comment(BsonValue comment)

操作に BsonValue コメントを付けます。 詳細については、 MongoDB Serverマニュアルの 「挿入コマンド フィールドのガイド」を参照してください。

comment(String comment)

操作に String コメントを付けます。 詳細については、 MongoDB Serverマニュアルの 「挿入コマンド フィールドのガイド」を参照してください。

次のコードでは、 estimatedDocumentCount()メソッドを使用して、 restaurantsコレクション内のドキュメントの数を推定します。 また、 "Estimated count of all documents"Stringとして操作にアタッチします。

Publisher<Long> countPublisher = restaurants.estimatedDocumentCount(
new EstimatedDocumentCountOptions()
.comment("Estimated count of all documents"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。