Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序
/

计算文档

在此页面上

  • Overview
  • 样本数据
  • 检索准确的计数
  • 对所有文档进行计数
  • 对特定文档进行计数
  • 自定义计数行为
  • 检索估计计数
  • 自定义估计计数行为
  • API 文档

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

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

以下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
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.
maxTime
Sets the maximum amount of time to allow the operation to run, in milliseconds.
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.

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

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

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

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

print(collection.estimatedDocumentCount())
21349

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

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

选项
说明
comment
Specifies a comment to attach to the operation.
maxTime
Specifies the maximum amount of time to allow the operation to run, in milliseconds.

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

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

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

后退

指定要返回的文档