Mongoose findOneAndUpdate 如何知道对象是否存在以及是否被修改

2024-04-28

我在用findOneAndUpdate猫鼬的方法:

function update_one_record(Model, unique_constraint, new_updated_values){ 
    obj=Model.findOneAndUpdate(
        //Similarly we have findOneAndRemove
        unique_constraint, 
        {$set: new_updated_values},
        {upsert: true}, 
        function(err, raw){
            console.log(err, raw)
    })
    return obj
}

我想知道:

  1. 该物体是否存在
  2. 对象是否被修改,如果没有,错误是什么。

来自猫鼬findOneAndUpdate 文档 http://mongoosejs.com/docs/api.html#model_Model.findOneAndUpdate:

Model.findOneAndUpdate([条件], [更新], [选项], [回调])

发出 mongodb findAndModify 更新命令。

找到匹配的文档,根据update arg更新它, 传递任何选项,并将找到的文档(如果有)返回给 打回来。如果回调被传递,查询将立即执行。

至于你的问题:

  1. 如果找到文档,它将作为参数传递给回调。您可以使用该选项new: true返回修改后的文档而不是原始文档,默认为 true。
  2. 错误(如果有)也将传递给回调函数。

需要注意的是,findOneAndUpdate 不会触发以下任何操作:

  • defaults
  • setters
  • 验证者
  • 中间件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongoose findOneAndUpdate 如何知道对象是否存在以及是否被修改 的相关文章

随机推荐