Mogoose findOneAndUpdate如何知道这个对象是否存在并被修改

我正在使用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}, {upsert: true}, function(err, raw){ console.log(err, raw) }) return obj } 

我想知道:

  1. 如果这个对象存在与否
  2. 如果对象修改或没有,如果不是什么错误。

从mongoose findOneAndUpdate文档 :

Model.findOneAndUpdate([conditions],[update],[options],[callback])

发出一个mongodb findAndModify更新命令。

find一个匹配的文档,根据更新arg进行更新,传递任何选项,并将find的文档(如果有的话)返回给callback。 如果callback通过,查询立即执行。

至于你的问题:

  1. 如果find文档,它将作为parameter passing给callback函数。 您可以使用选项new: true来返回修改后的文档,而不是原始的,默认为true。
  2. 错误(如果有的话)也将被传递给callback函数。

请注意,findOneAndUpdate不会触发以下任何一项:

  • 默认
  • 制定者
  • validation
  • 中间件