作者:手机用户2602906647 | 来源:互联网 | 2022-11-30 17:30
1> Nishant Bhar..:
“按某些指定的表达式对文档进行分组,并为每个不同的分组将文档输出到下一阶段”
的目的$group
不仅是将某些字段推送到下一个阶段,而且还基于在_id
属性中传递的输入条件收集一些元素。
另一方面,手动$project
功能将排除/包括某些字段(或自定义字段)到下一个阶段。对于每个文档,您可以看到定义“将带有请求字段的文档传递到管道的下一阶段。指定的字段可以是输入文档中的现有字段,也可以是新计算的字段。”
在一种情况下,如果我们抑制_id
from,$group
那么它将为整个输入文档计算累积值。看起来好像是这样$project
。
对于$ project阶段的查询是多余的
BillingCycle.aggregate([ {
$group: {
_id: null,
credit: {$sum: "$credit.value"}, debt: {$sum: "debt.value"}
}
}, {
$project: {_id: 0, credit: 1, debt: 1 }
}]});