计算文档数
概述
在本指南中,您可以学习如何检索集合中文档数量的准确值和估计值。
示例数据
本指南中的示例使用来自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 文档
要了解更多关于本指南中讨论的任何函数的信息,请参阅以下 API 文档