Docs 主页 → 开发应用程序 → MongoDB Manual
db.collection.estimatedDocumentCount()
定义
db.collection.estimatedDocumentCount(options)
重要
mongosh 方法
本页介绍了
mongosh
方法。这不是数据库命令或特定语言驱动程序(例如 Node.js)的文档。对于数据库命令,请参阅
collStats
命令返回的count
字段。对于 MongoDB API 驱动程序,请参阅特定语言的MongoDB 驱动程序文档。
对于传统
mongo
Shell 文档,请参阅相应 MongoDB Server 版本的文档:返回集合或视图中所有文档的计数。
db.collection.estimatedDocumentCount( <options> ) 范围类型说明选项文档可选。影响计数行为的额外选项。options
文档可以包含:字段类型说明maxTimeMS
整型可选。允许计数运行的最长时间。
行为
机制
db.collection.estimatedDocumentCount()
不采用查询筛选器,而是使用元数据返回集合的计数。
对于视图:
没有元数据。
通过在视图定义中执行聚合管道来计算文档计数。
不存在快速估计的文档计数。
分片集群
在分片集群上,所产生的计数将无法正确剔除孤立文档。
非正常关闭
本节仅适用于集合。
非正常关闭后,计数可能不正确。
mongod
使用 Wired Tiger 存储引擎的 非正常关闭后,db.collection.estimatedDocumentCount()
报告的计数统计信息可能不准确。
偏差的大小取决于在最后一个检查点和非正常关闭之间执行的插入、更新或删除操作的次数。检查点通常每 60 秒出现一次。但是,如果 mongod
实例使用了非默认的 --syncdelay
设置,则检查点出现的次数可能会增多或减少。
在 mongod
的每个集合上运行 validate
,以在非正常关闭之后恢复统计信息。
非正常关闭后:
客户端断开连接
从 MongoDB4 开始。2 ,如果发出 的客户端在操作完成之前断开连接,MongoDBdb.collection.estimatedDocumentCount()
会使用db.collection.estimatedDocumentCount()
killOp
将 标记为终止。
计数和事务
当您在事务中使用db.collection.estimatedDocumentCount()
时,生成的计数不会过滤掉任何未提交的多文档事务。
例子
以下示例使用db.collection.estimatedDocumentCount()
检索orders
集合中所有文档的计数:
db.orders.estimatedDocumentCount({})