我有一个查询过的文档,我从其他文档填充。我的问题是,是否可以更新引用的文档,或者是否必须使用id字段为其他文档创建新查询。
示例(mongoosejs中的代码):
Users.findById(id).populate('library.id', null, 'BookModel').exec(function(err, user)
user.library.id.loc.coordinates = [40, 20];
user.save();
});
答案 0 :(得分:1)
正如populate
的文档中所述:
从查询填充返回的文档变得功能齐全, 除非指定了精益选项,否则可移动,可保存的文档。做 不要将它们与子文档混淆。在调用删除时要小心 方法,因为你将从数据库中删除它,而不仅仅是 阵列。
所以是的,你可以直接修改引用的,填充的文档,并在它们上面调用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();
});