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 } 的结果文档(数值可能因数据集版本而异),而不是返回完整的文档列表。