我刚刚发现了Mongoose的Populate Virtuals方法,它将为我当前的项目保存大量的时间。不过,我希望进一步扩展它。有没有一种简单的方法可以基于多个本地/外键对进行填充?下面是一个代码 * 可能 * 看起来像什么的示例(注意:这可能不是一个很好的例子,但希望它传达了我的问题的基础)。
var workerSchema = new Schema({
name: String,
locationCode: String,
departmentCode: String
});
var deparmentSchema = new Schema({
locationCode: String, //Note: neither location nor code
code: String, //are unique, but the combination of them are
manager: String,
otherInfoAboutDepartment: String
});
workerSchema.virtual('department', {
ref: "Department",
localField: ["locationCode", "departmentCode"],
foreignField: ["locationCode", "code"]
});
2条答案
按热度按时间pcww981p1#
虽然这可能不是您要寻找的答案。
在查找查询中,您可以使用类似于
在处理数据时,您可以检查数据字段是否为空,并将两个输出合并为一个输出
f5emj3cl2#
您可以使用Mongoose 5.5中引入的
match
函数,请参阅此处它向Mongoose用于
populate()
的查询添加了一个额外的过滤条件