我正在使用猫鼬,在填充后进行聚合时遇到问题。
下面是一个例子。
猫鼬模型架构有两种,怪物和集合。
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”到模式“monster”的外键。
我想使用如下所示的路径填充“怪物”和“集合”。
Collection.find().populate('_monster')
我想汇总这个结果,如下所示。
AboveResult.aggregate([
{
'$project': {
'new_field': {
'$add': [
'$addedPower', '$addedArmor', '$_monster.power', '$_monster.armor'
]
}
}
}
]);
上面不起作用,但我认为它可以解释我想要的东西。答案将不胜感激。