Mongoose updateAttributes(set + save)有更多的功能性写作?

时间:2017-09-28 15:18:29

标签: mongoose

在活动记录中,update_attributes允许更多功能性写作。

而不是:

Model.findOne({criteria: 'foo'}).then(model => {
  model.criteria = 'bar'; 
  model.save();
});

写作:

Model.findOne({criteria: 'foo'}).then(model => model.updateAttributes({criteria: 'bar'}));

在Mongoose有类似的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

您始终可以doc.set({ criteria: 'bar' }).save()

您还可以在架构中定义方法

Schema.methods.updateAttributes = function (object) {
    return this.set(object).save()
};

为了做到

Model.findOne({ criteria: 'foo' }).then(doc => doc.updateAttributes({ criteria: 'bar' })); 

如果您想重复使用此方法,可以create a plugin