gpt4 book ai didi

node.js - Mongoosejs 设置/保存与更新以进行验证

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:51 24 4
gpt4 key购买 nike

我创建了一些 schema.pre('save', function(){...}); 验证,但后来了解到更新没有触发它。我真的想要验证更新,所以我开始这样做:

MySchema.findOne({...}, function(doc) {
doc.set(req.body);
doc.save(function(){...});
});

这样做有什么缺点吗?这似乎合乎逻辑,但我见过以这种方式完成更新的次数还不如使用 doc.update({});MySchema.findXxxAndUpdate({},{}) 完成的次数多。我意识到更新只是将所有内容传递给 native 驱动程序,因此设置/保存会产生一些性能损失?原子性怎么样?

最佳答案

您的方法的主要缺点是您会失去更新的原子性,因为在 findOne 调用和 doc.save< 调用之间可能会发生另一个更新.

您还失去了各种更新运算符(例如 $addToSet)的功能,这些运算符提供了经过测试的逻辑,否则您必须在代码中实现这些逻辑。

关于node.js - Mongoosejs 设置/保存与更新以进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com