如何使用引用的文档本身设置 DBref,并且仍然可以访问该文档,就好像它已填充在父对象上一样?
如果我有一个将字段设置为 dbref 字段的简单模式:
var PostSchema = new Schema({
'title': String,
'_author', { type: Schema.ObjectId, ref: 'users'}
});
var Post = mongoose.model('posts', PostSchema);
var UserSchema = new Schema({
'name': String
});
Var User = mongoose.model('users', UserSchema);
如果我尝试这样做:
var john = User.findOne({'name': 'john'});
var post = new Post({'title': 'My Post'});
post._author = john;
post.save(function(err) {
if (!err) {
console.log(post._author);
}
});
post._author属性的值为 author._id 。我希望 _author 属性具有整个作者文档的值(类似于我对帖子集合执行查找查询并填充作者对象)。
我唯一的解决方案是在保存回调中执行这样的 findOne 查询,并确保我将作者重新填充...这感觉有点不对劲,因为当我已经拥有所有信息时,我基本上不得不重新查询。
有什么建议么?谢谢