MongoDB Node.js:计算集合中所有文档的键值总和

4

这是我的购物车集合,其中包含价格键。在我的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个回答

4

要添加所有价格,可以使用聚合,如下:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接