ドキュメントをカウント
項目一覧
Overview
このガイドでは、コレクション内のドキュメント数の正確な推定値を取得する方法を学習できます。
サンプル データ
このガイドの例では、 Atlas サンプル データセットのsample_mflix
データベース内の movies
コレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 Atlas を使い始める 」ガイドを参照してください。
正確なカウントの取得
コレクション内のドキュメントの数をカウントするには、mongoc_collection_count_documents()
関数を使用します。指定した検索条件に一致するドキュメントの数をカウントするには、mongoc_collection_count_documents()
関数にクエリフィルターを渡します。
クエリの指定の詳細については、 「 クエリの指定 」を参照してください。
すべてのドキュメントをカウントする
コレクション内のすべてのドキュメントの数を返すには、次の例に示すように、空のクエリフィルターを指定して mongoc_collection_count_documents()
関数を呼び出します。
bson_error_t error; bson_t *empty_query = bson_new (); int64_t count = mongoc_collection_count_documents (collection, empty_query, NULL, NULL, NULL, &error); printf ("%" PRId64 "\n", count); bson_destroy (empty_query);
21349
特定のドキュメントのカウント
特定の検索条件に一致するドキュメントの数を返すには、mongoc_collection_count_documents()
関数でクエリを指定します。次の例では、movies
コレクション内の year
フィールド値が 1930
に等しいすべてのドキュメントのカウントを出力します。
bson_error_t error; bson_t *query = BCON_NEW ("year", BCON_INT32 (1930)); int64_t count = mongoc_collection_count_documents (collection, query, NULL, NULL, NULL, &error); printf ("%" PRId64 "\n", count); bson_destroy (query);
10
カウント動作をカスタマイズする
mongoc_collection_count_documents()
関数は、カウント操作を構成するために使用できるオプションのセットを表す bson_t
構造の形式で任意のパラメータを受け入れます。オプションを指定しない場合、ドライバーは カウント操作をカスタマイズしません。
次の表では、 countDocuments()
をカスタマイズするために設定できるオプションについて説明しています。
オプション | 説明 |
---|---|
comment | Specifies a comment to attach to the operation. |
skip | Sets the number of documents to skip before returning results. |
limit | Sets the maximum number of documents to count. Must be a positive integer. |
collation | Specifies the kind of language collation to use when sorting
results. For more information, see Collation
in the MongoDB Server manual. |
hint | Sets the index to scan for documents. |
オプションの完全なリストについては、 用のAPIドキュメント mongoc_collection_count_documents()
を参照してください。
次の例では、bson_t
構造を使用して mongoc_collection_count_documents()
操作にコメントを追加します。
bson_error_t error; bson_t *opts = BCON_NEW ("comment", BCON_UTF8 ("Retrieving count")); int64_t count = mongoc_collection_count_documents (collection, bson_new (), opts, NULL, NULL, &error); printf ("%" PRId64 "\n", count); bson_destroy (opts);
21349
推定カウントの取得
コレクション内のドキュメントの推定数を取得するには、mongoc_collection_estimated_document_count()
関数を使用します。この関数は、コレクションメタデータに基づいてドキュメントの量を推定します。これは正確なカウントを実行するよりも高速です。
次の例では、コレクション内のドキュメントの推定数を出力します。
bson_error_t error; int64_t count = mongoc_collection_estimated_document_count (collection, NULL, NULL, NULL, &error); printf ("%" PRId64 "\n", count);
21349
推定カウント動作をカスタマイズ
mongoc_collection_estimated_document_count()
関数は、カウント操作を構成するために使用できるオプションを表す bson_t
構造の形式で任意のパラメータを受け入れます。オプションを指定しない場合、ドライバーは カウント操作をカスタマイズしません。
次の表では、 mongoc_collection_estimated_document_count()
をカスタマイズするために設定できるオプションについて説明しています。
オプション | 説明 |
---|---|
comment | Specifies a comment to attach to the operation. |
collation | Specifies the kind of language collation to use when sorting
results. For more information, see Collation
in the MongoDB Server manual. |
mongoc_collection_estimated_document_count()
オプションの完全なリストについては、 のAPIドキュメントを参照してください。
次の例では、bson_t
構造を使用して mongoc_collection_estimated_document_count()
操作にコメントを追加します。
bson_error_t error; bson_t *opts = BCON_NEW ("comment", BCON_UTF8 ("Retrieving count")); int64_t count = mongoc_collection_estimated_document_count (collection, opts, NULL, NULL, &error); printf ("%" PRId64 "\n", count); bson_destroy (opts);
21349
API ドキュメント
このガイドで説明されている関数の詳細については、次のAPIドキュメントを参照してください。