该字段必须是mongo中的累加器对象

阿克沙伊

我正在执行聚合查询。我的要求是我要使用以下格式的文档:

{
"name":"a","age":20},
{
"name":"b","age":23},
{
"name":"a","age":26}

我需要对在名称字段中带有“ a”的所有名称的年龄进行汇总。我正在执行以下操作,但它给我一个错误:“字段'名称'必须是累加器对象”:

db.collection('students').aggregate({
        $group: {"name": "a", "sum": {$sum: '$age'}}
    }, {
        $project: {sum: '$sum'}
    }, (e, d) => {
        if (!e) {
            var e = d.stream({transform: JSON.stringify});
            console.log("answer")
            console.log(e);
            deferred.resolve(e);
        } else {
            console.log(e)
        }
    })
吉滕德拉

我更改了您的汇总查询。尝试如下操作:

db.collection('students').aggregate(
     [
       {
          $match: {
                 name: "a"
          }
       },
       {
         $group: {_id: "$name",
                  "sum": {
                     $sum: '$age'
                   }
                 }
        },
        {
          $project: {
                 sum: 1
        }
     ], (e, d) => {
        if (!e) {
            var e = d.stream({transform: JSON.stringify});
            console.log("answer")
            console.log(e);
            deferred.resolve(e);
        } else {
            console.log(e)
        }
    })

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章