$count(计数)
最后更新:2026-10-09
$count(计数)
$count 统计管道中当前剩余的文档数量,输出一条形如 { 字段: N } 的文档并继续传递。它是 $group 加 $sum: 1 的简写。放在 $match 之后即可统计过滤结果,无需先 $group。注意它输出的是单条文档,后续阶段看到的是这一条。
| 分类 | 核心阶段 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $count: "<输出字段名>" }
⚙️ 参数
| 输出字段名 | 计数结果写入的字段名。 |
|---|
返回值:单条文档,形如 { count: N }(字段名由参数指定)
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $count:统计状态为 A 的订单数
db.orders.aggregate([
{ $match: { status: 'A' } },
{ $count: 'total' }
])
运行结果:
// 匹配到的订单数量
{ "total": 25 }
📌 注意事项
- $count 输出单条文档,管道至此只剩一条数据
- 等价于 { $group: { _id: null, count: { $sum: 1 } } }
- 字段名必须是普通字符串,不能是 $ 开头的路径
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$count 和 countDocuments 有什么区别?
AcountDocuments 直接对集合计数;$count 统计的是管道前面各阶段过滤后的结果。
Q$count 之后还能继续聚合吗?
A可以,它输出单条文档,后续阶段继续处理这条文档。
Q$count 能自定义输出字段名吗?
A能,参数就是输出字段名,如 { $count: 'total' } 输出 { total: N }。