我试图从 mongodb 聚合中获取一个值,以通过totalAmount 在 ejs 页面中呈现,我得到的结果是 [{"totalAmount":42}],在本例中我只想获取数字 42
我尝试过用 .replace 删除方括号,并将 .totalAmount 附加到变量金额,但它不起作用。
app.get("/order", function(req, res) {
var amount;
var total = Order.aggregate([{
$group: {
_id: null,
totalAmount: { $sum: '$total' }
}
}, {
$project: {
_id: 0
} }]).exec(function (e,d) {
console.log(d)
amount = JSON.stringify(d)
});
Order.find({}, function(err, data) {
res.render("order", {ordenItem: data, totalAmount: amount});
});
});
最佳答案
聚合的结果是 [{"totalAmount":42}],如您所见,它是一个只有一个元素的数组,只需读取它,这里有一个示例:
app.get("/order", function(req, res) {
var total = Order.aggregate([{
$group: {
_id: null,
totalAmount: { $sum: '$total' }
}
}, {
$project: {
_id: 0
} }]).exec(function (e,doc) {
console.log(doc);
let amount = doc[0].totalAmount;
console.log(doc[0].totalAmount);
Order.find({}, function(err, data) {
res.render("order", {ordenItem: data, totalAmount: amount});
});
});
});
关于javascript - 如何从mongodb聚合中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57641096/