在MongoDB中批量更新/ upsert?

时间:2010-12-14 20:43:37

标签: mongodb batch-file bulk upsert nosql

是否可以在MongoDB中进行批量更新/ upsert(不插入)?

如果是,请指出任何与此相关的文档?

由于

3 个答案:

答案 0 :(得分:4)

你可以使用命令行程序 mongoimport 它应该在你的MongoDB bin目录中......

使用 upsert 时,您需要考虑两个选项......

  

- upsert insert或   更新已存在的对象
  --upsertFields arg查询的逗号分隔字段   的一部分                             更新插入。您应确保将其编入索引

此处有更多信息:http://www.mongodb.org/display/DOCS/Import+Export+Tools

或者只是......

$ mongoimport --help

答案 1 :(得分:1)

批量更新也可以批量完成,如文档中所示:

MongoDB Bulk Methods

我使用这些来导入我需要在导入数据之前按下一下的CSV文件。在处理更新时它有点慢,但它在大约83秒内完成了我的50K文档更新,这比mongoimport命令慢得多。

答案 2 :(得分:1)

mongo可以执行.js个文件。 你可以在js文件中推送所有更新命令。

<强> t.js

db.record.update({md5:"a35f10a8339ab678612d1f86be08b81a"},{$set:{algres:[]}},false,true);
db.record.update({md5:"a35f10a8339ab678612d1f86be08b81b"},{$set:{algres:[]}},false,true);

然后, mongo 127.0.0.1/test t.js