Overview
このガイドでは、コレクション内のドキュメント数の正確な推定値を取得する方法を学習できます。
サンプル データ
このガイドの例では、Atlas サンプル データセットの sample_mflix データベースの movies コレクションを使用します。無料の MongoDB 配置を作成し、サンプルデータセットを読み込む方法については、MongoDB の スタートガイドを参照してください。
次の Kotlin データ クラスは、このコレクション内のドキュメントをモデル化します。
data class Movie( val id: ObjectId, val title: String )
正確なカウントの取得
コレクション内のドキュメントの数をカウントするには、 countDocuments()メソッドを使用します。 指定した検索条件に一致するドキュメントの数をカウントするには、クエリフィルターをcountDocuments()メソッドに渡します。
クエリの指定の詳細については、「 クエリの指定 」を参照してください。
すべてのドキュメントをカウントする
コレクション内のすべてのドキュメントの数を返すには、次の例に示すように、引数なしでcountDocuments()メソッドを呼び出します。
println(collection.countDocuments())
21349
特定のドキュメントのカウント
特定の検索条件に一致するドキュメントの数を返すには、 countDocuments()メソッドでクエリを指定します。 次の例では、 moviesコレクション内のyearフィールド値が1930に等しいすべてのドキュメントのカウントを出力します。
println(collection.countDocuments(eq("year", "1930")))
10
カウント動作をカスタマイズする
countDocuments()メソッドは、カウント操作を構成するために使用できるオプションを表すCountOptionsオブジェクトの形式で任意のパラメータを受け入れます。 これらのオプションを設定するには、新しいCountOptionsオブジェクトをインスタンス化し、対応するメソッドを使用してオブジェクトのフィールドを設定し、それをcountDocuments()メソッドに渡します。 オプションを指定しない場合、ドライバーはカウント操作をカスタマイズしません。
次の表では、 countDocuments()をカスタマイズするために設定できるオプションについて説明しています。
オプション | 説明 |
|---|---|
| 操作に添付するコメントを指定します。 |
| 結果を返す前にスキップするドキュメントの数を設定します。 |
| カウントするドキュメントの最大数を設定します。 正の整数である必要があります。 |
| 結果をソートするときに使用する言語照合の種類を指定します。 詳細については、MongoDB Server マニュアルの 「照合」 を参照してください。 |
| ドキュメントをスキャンするインデックスを設定します。 |
次の例では、 CountOptionsオブジェクトを使用してcountDocuments()操作にコメントを追加します。
val options = CountOptions().comment("Retrieving count") collection.countDocuments(Filters.empty(), options)
推定カウントの取得
コレクション内のドキュメント数の推定値を取得するには、 estimatedDocumentCount()メソッドを使用します。 メソッドはコレクション メタデータに基づいてドキュメントの量を推定します。これは正確なカウントを実行するよりも高速です。
次の例では、コレクション内のドキュメントの推定数を出力します。
print(collection.estimatedDocumentCount())
21349
推定カウント動作をカスタマイズ
estimatedDocumentCount()メソッドは、カウント操作を構成するために使用できるオプションを表すEstimatedDocumentCountOptionsオブジェクト の形式で任意のパラメータを受け入れます。 これらのオプションを設定するには、新しいEstimatedDocumentCountOptionsオブジェクトをインスタンス化し、対応するメソッドを使用してオブジェクトのフィールドを設定し、それをestimatedDocumentCount()メソッドに渡します。 オプションを指定しない場合、ドライバーはカウント操作をカスタマイズしません。
次の表では、 estimatedDocumentCount()をカスタマイズするために設定できるオプションについて説明しています。
オプション | 説明 |
|---|---|
| 操作に添付するコメントを指定します。 |
次の例では、 EstimatedDocumentCountOptionsオブジェクトを使用してestimatedDocumentCount()操作にコメントを追加します。
val options = EstimatedDocumentCountOptions().comment("Retrieving count") collection.estimatedDocumentCount(options)
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。