正在检查 Mongoose 和相对较新的填充方法。当从孩子填充到父母时,似乎工作完美,如下所示:
var Comment = new Schema({
Message: { type: String }
User: { type: ObjectId, ref: 'User' }
});
var User = new Schema({
Username: { type: String }
Comments: [{ type: ObjectId, ref: 'Comment' }]
});
以下按预期工作。
Comment.find({}).populate({ path: 'User' }).exec(function (err, comments) {
if(err) handle(callback);
// no error do something with comments/user.
// this works fine and populates the user perfectly for each comment.
});
User.findOne({ Username: "some username"}).populate('Comments').exec(function (err, user) {
if(err) handle(callback);
// this throws no errors however the Comments array is null.
// if I call this without populate I can see the ref ObjectIds in the array.
});
ObjectIds 是可见的,无需在用户模型/模式上调用 populate,而且我可以从子侧 ref 很好地填充这一事实,这使得配置看起来是正确的,但并不快乐。
上述模式被缩短,以免发布一英里长的代码列表(我讨厌那个!!!)。希望我错过了一些简单的东西。