这是我的购物车系列,它有一个价格键.在我的node.js代码中,我想查看两个文档的价格总和.我尝试使用聚合但没有工作
cart collection
[
{
"_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 code
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)
});
});
}
最佳答案 添加所有价格可以使用聚合像:
db.cart.aggregate(
[
{
$group : {
_id : null,
totalPrice: { $sum: price }
}
}
]
).exec(function(error, result) {
if (err) return next(err);
res.send(result)
});