文档菜单
文档首页
/ / /
C 驱动器
/

计算文档数

在本页

  • 概述
  • 示例数据
  • 检索准确的计数
  • 计数所有文档
  • 计数特定文档
  • 自定义计数行为
  • 检索估计计数
  • 自定义估计计数行为
  • API 文档

在本指南中,您可以学习如何检索集合中文档数量的准确值和估计值。

本指南中的示例使用来自movies 集合的 sample_mflix 数据库,该数据库来自Atlas 示例数据集。要了解如何创建免费的 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
指定要附加到操作中的注释。
skip
设置在返回结果之前要跳过的文档数。
limit
设置要计数的最大文档数。必须是一个正整数。
collation
指定在排序结果时要使用的语言排序类型。有关更多信息,请参阅MongoDB服务器手册中的排序
hint
设置用于扫描文档的索引。

有关选项的完整列表,请参阅mongoc_collection_count_documents()API文档

以下示例使用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
指定要附加到操作中的注释。
collation
指定在排序结果时要使用的语言排序类型。有关更多信息,请参阅MongoDB服务器手册中的排序

有关选项的完整列表,请参阅 API 文档 中的 mongoc_collection_estimated_document_count()

以下示例使用 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 文档

返回

指定要返回的文档