mongoose的验证器是不是对update无效

mongoose在scheme中定义了required、min、max等验证器,它好像只对create()要插入的文档会进行验证,但是对update()要更新进去的文档好像不进行验证。

如果是这样,这个验证还有什么用呢?mongoose的验证器是不是真的不对要更新进去的文档不验证,那更新的验证这个要如何处理呢?

阅读 3.4k
3 个回答

mongoose还有updateOne()更新验证器,在对数据库数据进save行修改的时候会触发的验证

  • 在这篇文章里找到了答案 https://zhuanlan.zhihu.com/p/...
  • runValidators: null, // 如果值为true,执行Validation验证。

    model.update(conditions, doc, option, function (err, res){})
     // conditions-查询条件 doc-需要更新的数据
    *** 其中res返回  {n:2, nModified:2, ok: 1} ***
    *** n为匹配到的条数 nModified修改的条数 ok 表为是否成功 ***
    const option = { // option选项及其默认值
        safe: true, // 安全模式
        upsert: false, //如果不存在则创建新纪录
        multi: false,  // 是否更新多个查询记录
        runValidators: null, // 如果值为true,执行Validation验证。
        setDefaultsOnInsert: null, // 如果upsert选项为true,在新建时插入文档定义的默认值。
        strict: null, // 用严格模式跟新
        overwrite: false // 禁用update-only模式,允许覆盖记录。
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏