【发布时间】:2017-01-23 15:43:31
【问题描述】:
我正在使用 mongoose,但在填充后进行聚合时遇到问题。 下面是一个例子。
mongoose 模型模式有两种,mongoose 和 collection。
const monster = new Schema({
name: { type: String },
power: { type: Number },
armor: { type: Number },
});
const collection = new Schema({
_monster: { type: Schema.Types.ObjectId, ref: 'Monster' },
addedPower: { type: Number },
addedArmor: { type: Number },
});
如您所见,字段“_monster”是模式“集合”到模式“怪物”的外键。
我想使用如下路径填充“怪物”和“收藏”。
Collection.find().populate('_monster')
我想像下面这样聚合这个结果。
AboveResult.aggregate([
{
'$project': {
'new_field': {
'$add': [
'$addedPower', '$addedArmor', '$_monster.power', '$_monster.armor'
]
}
}
}
]);
以上不起作用,但我认为它可以解释我想要什么。将不胜感激。
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query aggregation-framework