2010-12-14 225 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