【发布时间】:2019-10-27 14:15:03
【问题描述】:
我有两个 Mongoose 模型:用户模型和与之关联的活动模型
用户架构
let userSchema = new mongoose.Schema({
name: { type: String, required: true },
clan: { type: String },
activities: [{
type: mongoose.Schema.ObjectId,
ref: 'Activity',
}],
});
活动架构
let activitySchema = new mongoose.Schema({
name: { type: String },
point: { type: Number },
});
所以数据是这样的
[{
name: "Player A",
clan: "Some Clan",
activities: [{
name: "Wake up",
point: 5
},{
name: "Eat,
point: 3
}]
},{
name: "Player B",
clan: "Some Clan",
activities: [{
name: "Wake up",
point: 5
},{
name: "Sleep",
point: 5
}]
}]
现在,我如何将玩家在氏族“某些氏族”中的所有玩家积分相加?
我期待这样的结果
{
sumOfPoints: 18 // because sum of player activities in "Some Clan" is 5 + 3 + 5 + 5
}
【问题讨论】:
标签: node.js mongodb mongoose aggregation-framework