0

不要认为这根本不可能,但想检查一下。

如果我有以下文件:

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

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

我希望客户能够在同一个更新请求中将两个文档都传递给我。在这种情况下,可能会为两个文档添加一个地址。

有没有办法我可以向 mongo 发送一个更新语句,以便它使用名称值更新两个文档?

来自客户端的 IE:

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 个回调然后我发送一个响应。

4

1 回答 1

0

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

看来您可以使用 mongoimport 工具批量加载:http: //docs.mongodb.org/manual/reference/mongoimport/#cmdoption-mongoimport--upsertFields。您可以通过这种方式进行批量更新。

否则,我不相信您可以通过客户端在一个命令中做到这一点。

于 2013-03-28T01:54:55.923 回答