Node.js 无法在mongoose的findOneAndUpdate查询中找到字段的含义
有人能帮我理解以下查询中参数的含义吗:Node.js 无法在mongoose的findOneAndUpdate查询中找到字段的含义,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,有人能帮我理解以下查询中参数的含义吗: Model.findOneAndUpdate([conditions], [update], [options], [callback]) 我理解[update]、[options]和[callback]部分,但是[conditions]对我来说不是很清楚。在大多数查询中,这是一组常见的参数,但由于我对Node和MongoDB还不熟悉,所以对我来说,将事物放到透视图中还不是很自然 我在官方网站上也找不到什么帮助。 这可能是一个微不足道的问题,但它将大大有
Model.findOneAndUpdate([conditions], [update], [options], [callback])
我理解[update]
、[options]
和[callback]
部分,但是[conditions]
对我来说不是很清楚。在大多数查询中,这是一组常见的参数,但由于我对Node和MongoDB还不熟悉,所以对我来说,将事物放到透视图中还不是很自然
我在官方网站上也找不到什么帮助。
这可能是一个微不足道的问题,但它将大大有助于理解猫鼬的查询结构 方法的名称
findOneAndUpdate()
意味着使用它,您可以在数据库中找到模型的单个文档,并更新该文档
但您显然需要指定要更新数据库中的哪个文档。这就是[conditions]
的用途:它告诉Mongoose“找到一个符合这些条件的文档,并更新您能找到的第一个文档”。(了解“第一个文档”部分很有用,因为条件可能匹配多个文档,findOne*
只会更改一个文档)
因此,[conditions]
是Mongoose用来查找匹配文档的查询(更多关于查询)
如果要更改电子邮件
字段具有特定值的文档的名称
,它将如下所示:
User.findOneAndUpdate({
email : 'foo@example.com'
}, {
name : 'Foo Bar'
}, ...);
条件-你将要修改什么,更新-你将如何修改它,回调在修改之后会发生什么。我使用了update(),它基本上做同样的事情。findOneAndUpdate与之有何区别?@Zooter取决于您使用的
update()
:或者我使用的是Model.update,其工作方式与findOneAndUpdate相同。我想区别在于选项参数。这将两者分开。@ZooterModel.update
可以匹配/更改多个文档,具体取决于您使用的查询findOneAndUpdate
将只匹配/更改一个文档。