0

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

示例(mongoosejs 中的代码):

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

1 回答 1

1

如文档中所述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();
});
于 2013-10-11T23:51:56.483 回答