mongodb $facet
时间: 2023-11-25 11:45:07 浏览: 109
MongoDB的$facet操作符是用于在单个聚合管道中执行多个独立的聚合操作。它可以在一个查询中同时计算多个聚合表达式,并将结果存储在单个文档中。
使用$facet操作符,可以将一个聚合管道分成多个子管道,每个子管道可以执行不同的聚合阶段。每个子管道的输出结果都会存储在一个指定的字段中,这样就可以在管道内部进行引用和处理。
下面是一个简单的示例,展示了如何使用$facet操作符:
```javascript
db.collection.aggregate([
{
$facet: {
totalSales: [ { $group: { _id: null, total: { $sum: "$sales" } } } ],
averagePrice: [ { $group: { _id: null, avgPrice: { $avg: "$price" } } } ]
}
}
])
```
在上面的示例中,我们使用$facet操作符将聚合管道分成了两个子管道。第一个子管道计算了销售总额,第二个子管道计算了平均价格。每个子管道都使用$group操作符来进行聚合计算。最后,输出结果会以指定的字段名存储在返回的文档中。
阅读全文