我有一个疑问,当我使用$group https://docs.mongodb.com/manual/reference/operator/aggregation/group/错误显示“字段“$name 必须是累加器对象”,如果删除提交的“$name”一切正常,并且我尝试仅使用“name”而不是“$name”,并且错误仍然存在。
User.aggregate([
{
$match: {
"storeKey": req.body.store
}
},
{
$group: {
"_id": "$_id",
"name": "$name",
"count": {
"$sum": 1
},
"totalValue": {
"$sum": "$value"
}
}
},
{
$sort: sort
},
{
$skip: req.body.limit * req.body.page
},
{
$limit: req.body.limit
}
])...
有一些聚合运算符只能用于$group https://docs.mongodb.com/manual/reference/operator/aggregation/group/聚合并命名为$group accumulators https://docs.mongodb.com/v3.2/reference/operator/aggregation-group/
就像你用过的一样$sum https://docs.mongodb.com/manual/reference/operator/aggregation/sum/在这里你必须使用name
钥匙也是如此
{ "$group": {
"_id": "$_id",
"name": { "$first": "$name" }, //$first accumulator
"count": { "$sum": 1 }, //$sum accumulator
"totalValue": { "$sum": "$value" } //$sum accumulator
}}
累加器就像元素数组,它以数组形式累加。
$first -> 给出名称组中的第一个名称
例子:
所以如果你有$_id
名称相同但不同["Darik","John"]
指定$first
会给达里克和类似的$last
会给约翰
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)