Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mogoose findOneAndUpdate如何知道对象是否存在以及是否已修改_Node.js_Mongoose - Fatal编程技术网

Node.js Mogoose findOneAndUpdate如何知道对象是否存在以及是否已修改

Node.js Mogoose findOneAndUpdate如何知道对象是否存在以及是否已修改,node.js,mongoose,Node.js,Mongoose,我正在使用猫鼬的findOneAndUpdate方法: function update_one_record(Model, unique_constraint, new_updated_values){ obj=Model.findOneAndUpdate( //Similarly we have findOneAndRemove unique_constraint, {$set: new_updated_values},

我正在使用猫鼬的
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
}
我想知道:

  • 是否存在该对象
  • 如果对象已修改或未修改,则错误是什么 来自猫鼬:

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

    发出mongodb findAndModify update命令

    查找匹配的文档,根据更新参数进行更新, 传递任何选项,并将找到的文档(如果有)返回给 回拨。如果通过回调,查询将立即执行

    关于你的问题:

  • 如果找到文档,它将作为参数传递给回调。您可以使用选项
    new:true
    返回修改后的文档,而不是默认为true的原始文档
  • 错误(如果有)也将传递给回调函数
  • 请务必注意,findOneAndUpdate不会触发以下任何情况:

    • 默认值
    • 二传手
    • 验证器
    • 中间件

    对于第二个疑问,您可以查看此答案