猫鼬:它没有找到引用它做了什么?
问题描述:
我使用Mongoose 4.1.12。我的模式:猫鼬:它没有找到引用它做了什么?
var UserSchema = new Schema({
_id: {type: String}, // unique nickname
name: {type: String}
});
var BookSchema = new Schema({
authors: [{type: String,ref:"User"}] // list of nicknames
});
让我们想象有2个用户注册,并昵称:伊戈尔和克里斯蒂娜。
还有与作者收集图书:伊戈尔,克里斯蒂娜,卢克。
然后我做的:
Book.findOne({}).populate("authors").exec(function(err,book){...})
现在一本书只包含2在“作家”集合对象,因为卢克用户不存在。
book: {
authors: [
{ _id: "igor", name: "Igor" },
{ _id: "kristina", name: "Kristina" }
]
}
我希望这样的事情:
book: {
authors: [
{ _id: "igor", name: "Igor" },
{ _id: "kristina", name: "Kristina" },
"luke"
]
}
这可能吗?
答
填充引用字段时,引用的基础文档不需要预先存在。
此外,尚未填入下面的参考文献场的时候,你要检索的文件与参考字段中的值将是:
- 空,如果你是在.populate(XXX)模式 裁判的
- 值否则
裁判联动在运行时发生
因此,在你找到的书,因为你正在使用模式的预计显示上方:.populate()最后作者数组元素'luke'将显示为空,因为底层'用户'文档缺失
我编辑了我的帖子,使问题更清晰,请您再看看一下? – igorpavlov