Mongodb node.js集合中所有文档的键值之和

时间:2016-04-30 07:37:01

标签: node.js mongodb

这是我的购物车系列,它有一个价格键。在我的node.js代码中,我想查看两个文档的价格总和。我尝试使用聚合但没有工作

  

购物车收藏

[
  {
    "_id": "57244d0a05dcf1d7151ede7f",
    "art_id": "57244c9505dcf1d7151ede7c",
    "artist_id": "5721a528c9d28cd51f014038",
    "user_id": "5721a528c9d28cd51f014038",
    "price": "90"
  },
  {
    "_id": "57244d1f05dcf1d7151ede80",
    "art_id": "57244c6105dcf1d7151ede7b",
    "artist_id": "5721a528c9d28cd51f014038",
    "user_id": "5721a528c9d28cd51f014038",
    "price": "150"
  }
]
  

node.js代码

function test(req, res, next) {
    db.users.findOne({
        _id: mongoskin.helper.toObjectID(req.session.user._id)
    }, function(err, user) {
        if (!user) {
            return res.status(400).send({
                status: '404 user not found'
            });
        }
        db.cart.find({
            user_id: req.session.user._id
        }).toArray(function(err, result) {
            if (err) return next(err);
            res.send(result)
        });
    });
}

1 个答案:

答案 0 :(得分:2)

添加所有价格可以使用汇总,如:

db.cart.aggregate(
        [
            {
                $group : {
                    _id : null,
                    totalPrice: { $sum: price }
                }
            }
        ]
    ).exec(function(error, result) {
        if (err) return next(err);
        res.send(result)
    });