我必须先使用findById()
,然后再使用save()
,因为我用于slug
生成mongoose-url-slugs的两个插件和收集历史记录{{3 }}。这两个插件在数据更新方面有限制,如果我使用findOneAndUpdate
或findByIdAndUpdate
,第一个插件不会更新数据块,而如果使用findByIdAndUpdate
,则第二个插件不能工作,但是与findOneAndUpdate
合作。
现在我要做的是:首先findById
,然后进行更改,然后save
,但这是一个问题,我的文档中有很多字段需要更改,所以不可能让我在更改期间像user.f1 = 'something', user.f2 = 'something else', and so on
一样写出每个。所以我想找到一种使用方法和具有键值对的对象。像这样:
User.findById(id).exec(function (err, user) {
if (err) {
} else {
user = {...fieldsForUpdate, ...user};
user.save();
}
});