Mongoosejs设置/保存与更新validation
我创build了一些schema.pre('save', function(){...});
validation,但后来学到更新没有触发它。 我真的想更新validation,所以我开始这样做:
MySchema.findOne({...}, function(doc) { doc.set(req.body); doc.save(function(){...}); });
这样做有什么不好吗? 这似乎是合乎逻辑的,但我还没有看到这样做更新多次,因为我已经看到他们用doc.update({});
或者MySchema.findXxxAndUpdate({},{})
。 我意识到update
只是通过一切通过本地驱动程序,所以设置/保存会招致一些性能处罚? primefaces性如何?
你的方法的主要缺点是你失去了更新的primefaces性,因为另一个更新可能发生在findOne
调用和doc.save
调用doc.save
。
您还失去了像$addToSet
这样的各种更新运算符的能力,这些运算符提供了testing逻辑,否则您必须在代码中实现这些逻辑。