У меня есть «предметы» из коллекции 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'} }}
])});
}
});
});
Буду признателен за любую помощь, которую смогу получить.