我与mongoose模式具有一对多的mongodb关系,该关系需要对用户选择的主要文档/架构中的总数进行求和。
“顶层”模式如下所示……
const programmeSchema = new mongoose.Schema({
name: {
type: String
},
projects:
[{ type: mongoose.Schema.ObjectId, ref: 'Project' }],
...
})
返回正确的“项目”文档,并且一切都是笨拙的。在虚拟字段中,我尝试求和。...
programmeSchema.virtual('totalProgramme').get(function () {
let totalProgramme = 0
this.projects.forEach(function (el) {
totalProgramme = totalProgramme + el.total
})
return totalProgramme
})
尝试使用此虚拟字段对“项目”文档中的数字求和不起作用。如果我进行管理,那只是我有权访问的ID。我不确定这是因为我需要在某个地方填充文档,还是因为无法创建一个虚拟字段来汇总来自不同架构的虚拟字段(或更可能的是,有可能,但是我不知道如何)。
我可以在前端进行总计,但这似乎是一种不好的做法。我希望这种“顶层”模式尽可能轻巧,并且只从要显示的文档中获取信息,并在一些字段上执行一些摘要数据。