【发布时间】:2015-04-05 17:54:21
【问题描述】:
我有以下问题。我在一个子文档中找到并总结了每个值。
它给出了以下[ { _id: 551fb140e4b04589d8997213, sumOfpeople: 342 } ]
我想把sumOfpeople 插入同一个房子(同一个req.params.house_id)
House.aggregate([
{ $match: {
id: req.params.house_id
}},
{ $unwind: '$people' }, // unwind creates a doc for every array element
{ $group: {
_id: '$_id',
sumOfpeople: { $sum: '$people.nr'}
}}
], function (err, result) {
if (err) {
console.log(err);
return;
}
console.log(result);
});
这是我想要在聚合后插入结果的模型。
module.exports = mongoose.model('House', {
id: String,
people: [{
id: String,
nr: Number
}],
sumOfpeople: Number //this is the field that I want to update after the aggregation
});
我尝试使用 $set : {sumOfpeople: { $sum: '$people.nr'}}。 是否可以在聚合中使用 $set ,或者如何解决?
【问题讨论】:
标签: mongodb mongoose mongodb-query