Mongoose使用多个本地/外键对填充虚拟对象

Mongoose使用多个本地/外键对填充虚拟对象,mongoose,populate,Mongoose,Populate,我刚刚发现了Mongoose的populateVirtuals方法,这将为我当前的项目节省大量资金。不过,我希望能进一步扩展它。是否有一种简单的方法可以基于多个本地/外键对进行填充?下面是一个代码的示例(注意:这可能不是一个很好的示例,但希望它能传达我问题的基础) 虽然这可能不是你想要的答案。你可以这样做 workerSchema.virtual('department1',{ ref: "Department", localField: "locationCode", for

我刚刚发现了Mongoose的populateVirtuals方法,这将为我当前的项目节省大量资金。不过,我希望能进一步扩展它。是否有一种简单的方法可以基于多个本地/外键对进行填充?下面是一个代码的示例(注意:这可能不是一个很好的示例,但希望它能传达我问题的基础)


虽然这可能不是你想要的答案。你可以这样做

workerSchema.virtual('department1',{
   ref: "Department",
   localField: "locationCode",
   foreignField: "locationCode"
})

workerSchema.virtual('department2',{
    ref: "Department",
    localField: "departmentCode",
    foreignField: "code"
})
在find查询中,可以使用

Worker.find({}).populate('department1').populate('department2')
在处理数据时,您可以检查数据字段是否为空,并将两个输出合并为一个

Worker.find({}).populate('department1').populate('department2')