Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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 如何对数据库中的字段求和_Javascript_Node.js_Mongodb_Mongoose_Aggregation Framework - Fatal编程技术网

Javascript 如何对数据库中的字段求和

Javascript 如何对数据库中的字段求和,javascript,node.js,mongodb,mongoose,aggregation-framework,Javascript,Node.js,Mongodb,Mongoose,Aggregation Framework,我试图将所有具有相同事件名称的字段分组,并对这些字段的参与者求和 { "_id": { "$oid": "54b6ae8aec17b5e905a5813a" }, "person": { "name": "Something", "phone": "(011) 9468-1319", "email": "myemail@gmail.com", "obs": "" }, "eve

我试图将所有具有相同事件名称的字段分组,并对这些字段的参与者求和

{
    "_id": {
        "$oid": "54b6ae8aec17b5e905a5813a"
    },
    "person": {
        "name": "Something",
        "phone": "(011) 9468-1319",
        "email": "myemail@gmail.com",
        "obs": ""
    },
    "event": {
        "full": "20/11/01 Classic",
        "date": "20/11/01",
        "name": "Special",
        "participants": 10
    },
    "__v": 0
}
{
    "_id": {
        "$oid": "54b6aeaad7e410ec05dd1ca2"
    },
    "person": {
        "name": "Something",
        "phone": "(011) 9468-1319",
        "email": "myemail@gmail.com",
        "obs": ""
    },
    "event": {
        "full": "20/11/01 Classic",
        "date": "20/11/01",
        "name": "Special",
        "participants": 10
    },
    "__v": 0
}
我只有这两个集合,我使用下面的代码将event.full和它们相加到participans(Number)字段

代码如下:

MyModel.aggregate(
    [
        { "$group": 
            { 
                _id: "$event.full",
                participants: { "$sum": "$participants" },
                count: { $sum: 1 }
            } 
        },
        { "$skip": ( page-1 ) * 15 },
        { "$limit": 15 }
    ],
    function(err, obj) {
        res.send(obj);
    }
);
这将返回以下对象:

[
 {
  _id: "20/11/01 Classic",
  participants: 0,
  count: 2
 }
]

为什么总和字段不起作用?如何修复???

您错过了
事件
请使用以下方法:

[
        { "$group": 
            { 
                _id: "$event.full",
                participants: { "$sum": "$event.participants" },
                count: { $sum: 1 }
            } 
        },
        { "$skip": ( page-1 ) * 15 },
        { "$limit": 15 }
 ]

经常发生;)