对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs 菜单

计算文档

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

本指南中的示例使用来自 Atlas 示例数据集sample_mflix 数据库中的 movies 集合。要了解如何创建免费的 MongoDB 部署并加载示例数据集,请参阅 MongoDB入门指南。

以下Kotlin数据类对此集合中的文档进行建模:

data class Movie(
@BsonId
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()的选项:

选项
说明

comment

指定要附加到操作的注释。

skip

设置返回结果之前要跳过的文档数。

limit

设置要计数的最大文档数。 必须为正整数。

collation

指定对结果进行排序时要使用的语言排序规则类型。 有关更多信息,请参阅 MongoDB Server 手册中的排序规则

hint

设置扫描文档的索引。

以下示例使用CountOptions对象为countDocuments()操作添加注释:

val options = CountOptions().comment("Retrieving count")
collection.countDocuments(Filters.empty(), options)

使用estimatedDocumentCount()方法检索集合中文档数量的估计值。 该方法根据集合元数据估计文档数量,这可能比执行精确计数更快。

以下示例打印集合中的估计文档数:

print(collection.estimatedDocumentCount())
21349

estimatedDocumentCount() 方法接受 EstimatedDocumentCountOptions对象形式的可选参数,该对象表示可用于配置计数操作的选项。要设立这些选项,您可以实例化新的 EstimatedDocumentCountOptions对象,使用相应的方法设置对象的字段,然后将其传递给 estimatedDocumentCount() 方法。如果不指定任何选项,驱动程序不会自定义计数操作。

下表描述了可以设置用于自定义estimatedDocumentCount()的选项:

选项
说明

comment

指定要附加到操作的注释。

以下示例使用EstimatedDocumentCountOptions对象为estimatedDocumentCount()操作添加注释:

val options = EstimatedDocumentCountOptions().comment("Retrieving count")
collection.estimatedDocumentCount(options)

要进一步了解本指南所讨论的任何方法或类型,请参阅以下 API 文档: