Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用mongoose计算mongodb集合文档中的字段总和_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 如何使用mongoose计算mongodb集合文档中的字段总和

Javascript 如何使用mongoose计算mongodb集合文档中的字段总和,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我想对mongodb文档中的员工点数进行求和 我在员工积分集合中的文档如下所示 [ { "EmployeeID": "Cust0001", "Point": 1, }, { "EmployeeID": "Cust0002", "Point": 2, }, { "EmployeeID": "Cust0003", "Point": 1, }, {

我想对mongodb文档中的员工点数进行求和

我在员工积分集合中的文档如下所示

[
    {
        "EmployeeID": "Cust0001",
        "Point": 1,
    },
    {
        "EmployeeID": "Cust0002",
        "Point": 2,
    },
    {
        "EmployeeID": "Cust0003",
        "Point": 1,
    },
    {
        "EmployeeID": "Cust0001",
        "Point": 5,
    },
    {
        "EmployeeID": "Cust0001",
        "Point": 2,
    }
]
预期结果

[
    {
        "EmployeeID": "Cust0001",
        "Total_Points": 8
    },
    {
        "EmployeeID": "Cust0002",
        "Total_Points": 2
    },
    {
        "EmployeeID": "Cust0003",
        "Total_Points": 1
    }
]
这是从mongodb获得总分的最佳和最优化的方式

我在我的项目中使用mongoose mongodb连接

我可以使用for循环操作数据,但它似乎效率很低

提前谢谢

欢迎评论。

您需要在此处使用两次。。。一个作为阶段的“累加器”,另一个作为
点的总和

db.collection.aggregate([
  { "$group": {
    "_id": "$EmployeeID",
    "Point": {
      "$sum": {
        "$sum": "$Point"
      }
    }
  }},
  { "$project": {
    "EmployeeID": "$_id",
    "Point": "$Point",
    "_id": 0
  }}
])
输出


检查它

您的mongo Playder跑步成功,将检查开发并更新我的报告
[
  {
    "EmployeeID": "Cust0003",
    "Point": 1
  },
  {
    "EmployeeID": "Cust0002",
    "Point": 2
  },
  {
    "EmployeeID": "Cust0001",
    "Point": 8
  }
]