在mongoose中findByIdAndUpdate()和findOneAndUpdate()有什么区别?

时间:2017-11-12 21:03:21

标签: mongodb express mongoose

任何人都可以解释mongoose中 findByIdAndUpdate() findOneAndUpdate()之间的区别。

还有findOneAndUpdate( req.params.id )和findOneAndUpdate( {_ id:req.params.id} )之间的区别?

1 个答案:

答案 0 :(得分:7)

查看findByIdAndUpdate()findOneAndUpdate()的文档,其中明确指出:

  

findByIdAndUpdate(id,...)等同于findOneAndUpdate({   _id:id},...)。

所以,实际上,findByIdAndUpdate()只是一个方便的速记版本,可能经常发生更新场景("由id&#34更新;)。

关于你的第二个问题:

  

还有findOneAndUpdate(req.params.id)和   findOneAndUpdate({_ id:req.params.id})?

第一个只会崩溃,因为findOneAndUpdate()的第一个参数应该是一个过滤文档。第二个将起作用,相当于上面已经提到的findByIdAndUpdate(req.params.id)