mongodb - Mongoose 中的 findByIdAndUpdate() 和 findOneAndUpdate() 有什么区别?

标签 mongodb express mongoose

谁能解释一下 findByIdAndUpdate()findOneAndUpdate() 在 mongoose 中的区别。

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

最佳答案

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

findByIdAndUpdate(id, ...) is equivalent to findOneAndUpdate({ _id: id }, ...).

所以,真的,findByIdAndUpdate() 只是一个方便的简写版本,用于可能经常发生的更新场景(“按 id 更新”)。

关于你的第二个问题:

And also the difference between findOneAndUpdate(req.params.id) and findOneAndUpdate({_id: req.params.id})?

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

关于mongodb - Mongoose 中的 findByIdAndUpdate() 和 findOneAndUpdate() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253949/

相关文章:

c# - 如何从 MongoDB 中的 ChangeStream 过滤对特定字段的更新

node.js - Mongoose 返回空,而 mongodb shell 中的相同查询工作正常

javascript - 如何在 Express Nodejs 上提取路由名称(路径)(在调用期间,从 req 中)

node.js - $lookup 对象数组中的 ObjectId (Mongoose)

javascript - Mongoose 对象的键与属性名称不同

node.js - 相当于 Node.js 中的 mongo shell db.collection.runCommand()

javascript - SQL 外键类似 Meteor 中的行为 - MongoDB

mongodb - MongoDB和Ldap是同一个概念吗?

javascript - 如何执行find中的函数或将数据保存在变量中?

mongodb - 如何从 find 方法返回 Mongoose 结果?