是否可以根据从聚合返回的变量来设置条件聚合阶段?
例如
User.aggregate([
// if user has a property verified that returns true run aggregation pipeline
// one. Else run aggregation pipeline 2.
])发布于 2020-12-03 03:49:55
当然,您可以通过将$facet与2个不同的管道一起使用,并为每个第一阶段放置一个带有属性验证的$match阶段。
下面是这样一个查询的示例:
db.collection.aggregate([
{
"$facet": {
"avgSteps": [
{
"$match": {
hasCar: false
}
},
{
$project: {
steps: {
$avg: "$walks.steps"
}
}
}
],
"sumDistance": [
{
"$match": {
hasCar: true
}
},
{
$project: {
sumKm: {
$sum: "$travels.distance"
}
}
}
],
}
}
])https://stackoverflow.com/questions/65114015
复制相似问题