【发布时间】:2018-04-25 12:32:28
【问题描述】:
谁能解释一下 findByIdAndUpdate() 和 findOneAndUpdate() 在 mongoose 中的区别。
还有 findOneAndUpdate(req.params.id) 和 findOneAndUpdate({_id: req.params.id}) 的区别?
【问题讨论】:
谁能解释一下 findByIdAndUpdate() 和 findOneAndUpdate() 在 mongoose 中的区别。
还有 findOneAndUpdate(req.params.id) 和 findOneAndUpdate({_id: req.params.id}) 的区别?
【问题讨论】:
查看findByIdAndUpdate() 和findOneAndUpdate() 的文档,其中明确指出:
findByIdAndUpdate(id, ...) 等价于 findOneAndUpdate({ _id: id }, ...)。
所以,真的,findByIdAndUpdate() 只是一个方便的简写版本,用于可能经常发生的更新场景(“按 id 更新”)。
关于你的第二个问题:
还有 findOneAndUpdate(req.params.id) 和 findOneAndUpdate({_id: req.params.id})?
第一个将简单地崩溃,因为findOneAndUpdate() 的第一个参数预计是一个过滤器文档。第二个可以工作,相当于上面已经提到的findByIdAndUpdate(req.params.id)。
【讨论】: