对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

$count(聚合阶段)

$count

将文档传递到下一阶段,该阶段包含输入到该阶段的文档数的计数。

注意

消歧

本页介绍了 $count 聚合管道阶段。您还可以在以下其他场景中使用 $count:

可以使用 $count 查找托管在以下环境中的部署:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

$count 通过以下语法实现:

{ $count: <string> }

<string> 是以计数为值的输出字段的名称。<string> 必须是非空字符串,不能以 $ 开头,也不能包含 . 字符。

返回类型由可存储计数最终值的最小类型表示:integer →long →double

The $count stage is equivalent to the following $group and $project sequence:

db.collection.aggregate( [
{ $group: { _id: null, myCount: { $sum: 1 } } },
{ $project: { _id: 0 } }
] )

myCount 是存储计数的输出字段。 您可以为输出字段指定其他名称。

如果输入数据集为空,则 $count 不会返回结果。

提示

db.collection.countDocuments()用 表达式包装$group $sum聚合阶段。

本页上的示例使用来自 sample_mflix 数据集的数据。有关如何将此数据集加载到您的自管理 MongoDB 部署中的详细信息,请参阅 加载示例数据集。如果您对示例数据库进行了任何修改,您可能需要删除并重新创建数据库,才能运行此页面上的示例。

以下聚合操作有两个阶段:

  1. $match 阶段筛选 metacritic 等于 100 的文档,以仅将这些文档传递到下一阶段。

  2. $count 阶段会返回聚合管道中剩余文档的计数,并将该值分配给名为 perfect_score_count 的字段。

db.movies.aggregate( [
{ $match: { metacritic: { $eq: 100 } } },
{ $count: "perfect_score_count" }
] )
[ { perfect_score_count: 8 } ]