我创建了一些schema.pre('save', function(){...});
验证,但后来学到的更新并没有触发它。我真的很想验证更新,所以我开始这样做:
MySchema.findOne({...}, function(doc) {
doc.set(req.body);
doc.save(function(){...});
});
这样做有什么缺点吗?这似乎是合乎逻辑的,但我没有看到像使用doc.update({});
or那样完成更新的次数MySchema.findXxxAndUpdate({},{})
。我意识到update
只是将所有内容传递给本机驱动程序,所以设置/保存会导致一些性能损失?原子性如何?