MongoDB 简明教程

MongoDB $count

1. $count 阶段

$count 阶段会计算传入该阶段的文档总数,并输出一个包含计数值的单一文档。

如果你需要知道经过前面阶段(例如使用 $match 进行筛选)处理后还剩下多少条记录,这个阶段非常实用。

1.1 语法规范

$count 阶段的语法非常直接,你只需要指定输出字段的名称字符串即可:

{ $count: <string> }

其中 <string> 是你希望在输出文档中显示的字段名称。

2. 实践示例

在这个示例中,我们将使用 "sample_airbnb" 数据库中的 listingsAndReviews 集合(该数据集通常在 MongoDB Atlas 的示例数据中提供)。

我们将首先筛选出 property_type(物业类型)为 "House" 的所有文档,然后计算这些匹配文档的总数,并将结果显示在名为 total_houses 的字段中。

示例代码

db.listingsAndReviews.aggregate([
  // 阶段 1:筛选出所有房屋类型的文档
  { $match: { property_type: "House" } },
  // 阶段 2:对筛选结果进行计数
  { $count: "total_houses" }
])

执行结果:
执行该操作后,你将得到一个类似 { "total_houses": 606 } 的结果文档(数值可能因数据集版本而异),而不是返回完整的文档列表。