我有MongoDb集合“物品”,其中包含以下物品:
{
"_id" : ObjectId("5b8fc348c26b60039e9d8f2c"),
"item" : "tomate",
"calories" : 15,
"quantity" : 2,
"__v" : 0
}
{
"_id" : ObjectId("5b8fc56476cdff03d3cb3611"),
"item" : "Lechuga",
"calories" : 24,
"quantity" : 1,
"__v" : 0
}
我需要返回将每个项目的总热量相加的结果;我可以使用来自MongoDB的聚合来获得该结果(15 + 24 = 39),但是如何使该结果反映在Node上。我尝试从Node运行聚合功能,但它不起作用,我认为它不起作用,因为它不是Node,而不是Mongo。我环顾四周,但找不到任何解决方法
这是我的节点代码:
mongoose.connect(url);
app.use(metOvrr("_method"));
const itemSchema = new mongoose.Schema({
item: String,
calories: Number,
quantity: Number
});
const Item = mongoose.model('Item', itemSchema);
/* GET home page. */
app.get('/', (req, res)=> {
res.redirect('/item');
});
app.get('/item', (req, res)=> {
Item.find({}, (err, allItems)=>{
if (err) {
console.log(err);
} else {
res.render('itemlist', {'itemlist': allItems, 'total': db.items.aggregate([
{$match: {}},
{$group: {_id: '', total: {$sum: '$calories'} }}
])});
}
});
});
我将不胜感激。