MongoDB - 更新引用字段

时间:2013-10-11 22:41:17

标签: mongodb mongoose

我有一个查询过的文档,我从其他文档填充。我的问题是,是否可以更新引用的文档,或者是否必须使用id字段为其他文档创建新查询。

示例(mongoosejs中的代码):

Users.findById(id).populate('library.id', null, 'BookModel').exec(function(err, user) 
    user.library.id.loc.coordinates = [40, 20];
    user.save();
});

1 个答案:

答案 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();
});