我有一个查询文档,我从其他文档中填充了该文档。我的问题是是否可以更新引用的文档,或者我是否必须使用 id 字段为其他文档创建新查询。
示例(mongoosejs 中的代码):
Users.findById(id).populate('library.id', null, 'BookModel').exec(function(err, user)
user.library.id.loc.coordinates = [40, 20];
user.save();
});
如文档中所述populate
:
除非指定了精简选项,否则从查询群体返回的文档将成为功能齐全、可删除、可保存的文档。不要将它们与子文档混淆。调用它的 remove 方法时要小心,因为您将从数据库中删除它,而不仅仅是数组。
所以是的,您可以直接修改引用的、填充的文档并调用save
它们来提交任何更改。但是您需要调用save
引用的文档来执行此操作:
Users.findById(id).populate('library.id', null, 'BookModel').exec(function(err, user)
user.library.id.loc.coordinates = [40, 20];
user.library.id.save();
});