Docs Menu
Docs Home
/ / /
C ドライバー
/

ドキュメントをカウント

項目一覧

  • Overview
  • サンプル データ
  • 正確なカウントの取得
  • すべてのドキュメントをカウントする
  • 特定のドキュメントのカウント
  • カウント動作をカスタマイズする
  • 推定カウントの取得
  • 推定カウント動作をカスタマイズ
  • API ドキュメント

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

このガイドの例では、 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ドキュメントを参照してください。

戻る

返すドキュメントを指定する