参考 > 参考 > mongo Shell方法 > 收集方法 > db.collection.countDocuments()
db.collection.
countDocuments
(查询,选项)¶mongo
壳法
此页面记录了mongo
shell方法,并且
没有引用MongoDB Node.js驱动程序(或任何其他驱动程序)方法。对于相应的MongoDB驱动程序API,请改为参考您特定的
MongoDB驱动程序文档。
版本4.0.3中的新功能。
返回与查询集合或视图匹配的文档数。该方法$group
用一个$sum
表达式包装聚合阶段以执行计数,可在Transactions中使用。
参数 | 类型 | 描述 |
---|---|---|
询问 | 文献 | 查询选择条件。要计算所有文档,请指定一个空文档。另请参阅查询限制。 |
选项 | 文献 | 可选的。影响计数行为的其他选项。 |
该options
文档可以包含以下内容:
领域 | 类型 | 描述 |
---|---|---|
limit |
整数 | 可选的。要计算的最大文件数。 |
skip |
整数 | 可选的。计数前要跳过的文档数。 |
hint |
字符串或文件 | 可选的。用于查询的索引名称或索引规范。 |
maxTimeMS |
整数 | 可选的。允许计数运行的最长时间。 |
不像db.collection.count()
,
db.collection.countDocuments()
不使用元数据返回计数。而是,它执行文档的聚合以返回准确的计数,即使在异常关闭后或分片群集中存在孤立的文档之后也是如此。
db.collection.countDocuments()
包装以下聚合操作并仅返回的值n
:
从版本4.2.1(和版本4.0.13中的4.0系列)开始,
db.collection.countDocuments()
返回0
一个空的或不存在的集合或视图。
在MongoDB的早期版本中,db.collection.countDocuments()
空或不存在的集合或视图上的错误。
您不能将以下查询运算符用作以下查询表达式的一部分db.collection.countDocuments()
:
受限制的运营商 | 另类 |
---|---|
$where |
作为替代,使用$expr 代替。 |
$near |
或者, |
$nearSphere |
或者, |
db.collection.countDocuments()
可以在多文档交易中使用。
重要
在大多数情况下,与单文档写入相比,多文档事务产生的性能成本更高,并且多文档事务的可用性不应代替有效的架构设计。在许多情况下, 非规范化数据模型(嵌入式文档和数组)对于您的数据和用例将继续是最佳的。也就是说,在许多情况下,对数据进行适当的建模将最大程度地减少对多文档交易的需求。
有关其他事务使用方面的注意事项(例如运行时限制和oplog大小限制),另请参见 生产注意事项。
从MongoDB 4.2开始,如果发出db.collection.countDocuments()
断开连接的客户端在操作完成之前断开连接,则MongoDB将标记db.collection.countDocuments()
为终止(即killOp
在操作上)。