Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 使用不同的值更新多个文档_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 使用不同的值更新多个文档

Node.js 使用不同的值更新多个文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,不认为这是完全可能的,但想检查一下 如果我有以下文件: doc1 : { _id: 1, name: 'John Smith', age: 20 } doc2 : { _id: 2, name: 'Jane Smith', age: 22 } 我希望客户端能够在同一个更新请求中向我传递两个文档。在这种情况下,可以在两个文档中添加一个地址 是否有一种方法可以将一条update语句发送到mongo,以便它使用名称值更新两个文档 即从客户处: doc1 : { _id:

不认为这是完全可能的,但想检查一下

如果我有以下文件:

doc1 : {
  _id: 1,
  name: 'John Smith',
  age: 20
}

doc2 : {
  _id: 2,
  name: 'Jane Smith',
  age: 22
}
我希望客户端能够在同一个更新请求中向我传递两个文档。在这种情况下,可以在两个文档中添加一个地址

是否有一种方法可以将一条update语句发送到mongo,以便它使用名称值更新两个文档

即从客户处:

doc1 : {
  _id: 1,
  name: 'John Smith',
  age: 20,
  address: '123 Street'
}

doc2 : {
  _id: 2,
  name: 'Jane Smith',
  age: 22,
  address: '456 Way'
}

目前,我正在迭代这些值,并一次更新一个。问题是mongoose/mongodb更新是异步的,所以我不能可靠地告诉客户端我更新了每个结果,直到所有更新回调都被触发。我有一个计数器,确保收到N次回调,然后发送响应。

我做的所有更新都是一次更新一次,但对我来说好的是它们是同步的。=)

您似乎可以使用mongoimport工具进行批量加载:。你可以用这种方法做大量的加料


否则,我不相信您可以通过客户端在一个命令中完成此操作。

需要将其拆分为两个更新。查看库以了解改进回调计数器方法的方法。如果要对多个文档应用相同的更新,则可以使用
multi:true
标志进行更新。