Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法在mongoose的findOneAndUpdate查询中找到字段的含义_Node.js_Mongodb_Mongoose - Fatal编程技术网

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相同。我想区别在于选项参数。这将两者分开。@Zooter
Model.update
可以匹配/更改多个文档,具体取决于您使用的查询
findOneAndUpdate
将只匹配/更改一个文档。