Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.collection.estimatedDocumentCount()

在此页面上

  • 定义
  • 兼容性
  • 行为
  • 例子

带驱动程序的 MongoDB

本页面提供 mongosh 方法的相关信息。要查看 MongoDB 驱动程序中的等效方法,请参阅编程语言的相应页面:

C#Java SyncNode.jsPyMongoCC++GoJava RSKotlin CoroutineKotlin SyncPHPMongoidRustScala
db.collection.estimatedDocumentCount(options)

返回集合或视图中所有文档的计数。

db.collection.estimatedDocumentCount( <options> )
Parameter
类型
说明

选项

文档

可选。影响计数行为的额外选项。

options 文档可以包含:

字段
类型
说明

maxTimeMS

整型

可选。允许计数运行的最长时间。

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

db.collection.estimatedDocumentCount() 不采用查询筛选器,而是使用元数据返回集合的计数。

对于视图:

  • 没有元数据。

  • 通过在视图定义中执行聚合管道来计算文档计数。

  • 不存在快速估计的文档计数。

在分片集群上,所产生的计数将无法正确剔除孤立文档

本节仅适用于集合。

非正常关闭后,计数可能不正确。

在使用 Wired Tiger 存储引擎非正常关闭 mongod 后,db.collection.estimatedDocumentCount() 报告的计数统计数据可能不准确。

偏差的大小取决于在最后一个检查点和非正常关闭之间执行的插入、更新或删除操作的次数。检查点通常每 60 秒出现一次。但是,如果 mongod 实例使用了非默认的 --syncdelay 设置,则检查点出现的次数可能会增多或减少。

mongod 的每个集合上运行 validate,以在非正常关闭之后恢复统计信息。

非正常关闭后:

从 MongoDB 4.2 开始,如果在操作完成之前,发出 db.collection.estimatedDocumentCount() 的客户端断开连接,MongoDB 将使用killOpdb.collection.estimatedDocumentCount() 标记为终止。

在事务中使用 db.collection.estimatedDocumentCount() 时,生成的计数不会过滤任何未提交的多文档事务

以下示例使用 db.collection.estimatedDocumentCount() 来检索 orders 集合中所有文档的计数:

db.orders.estimatedDocumentCount({})

提示

另请参阅:

后退

db.collection.ensureIndex