2010-12-14 127 views
9

是否有可能在MongoDB中执行批量更新/插入(不插入)?在MongoDB中批量更新/插入?

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

感谢

+0

这是不可能的尚未:看https://jira.mongodb.org/browse/SERVER-4004 – 2013-08-29 13:54:56

回答

4

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

有你要两个选项来看看使用UPSERT ...

--upsert插入或已经存在的 更新对象
--upsertFields ARG COMM用于 upsert查询 部分的分隔字段。您应该确保这个被索引

此处了解详情:http://www.mongodb.org/display/DOCS/Import+Export+Tools

或者只是做...

$ mongoimport --help 
+0

注意:目前--upsert没有记录在在线文档中(他们需要更新)......但你会从命令行看到它--help。 – 2010-12-14 22:08:20

1

批量更新也可以分批进行,如文档中找到:

MongoDB Bulk Methods

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

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