mongo noob的排序,我有一種感覺,我正從錯誤的方向來解決這個問題。如何根據mongo中的現有數據進行更新
我有大約700萬的文檔集合。每個文件有兩個字段,我想要修改(不能替換),基本上他們是大字符串有\\n
,我想用\n
替換那些。
我花了大約一個小時試圖找到一種方法來「回引用」由查詢返回的對象,這完全不存在。什麼是這樣的最好的方法?
mongo noob的排序,我有一種感覺,我正從錯誤的方向來解決這個問題。如何根據mongo中的現有數據進行更新
我有大約700萬的文檔集合。每個文件有兩個字段,我想要修改(不能替換),基本上他們是大字符串有\\n
,我想用\n
替換那些。
我花了大約一個小時試圖找到一種方法來「回引用」由查詢返回的對象,這完全不存在。什麼是這樣的最好的方法?
你必須查詢所有的文件和一個更新它們之一。如果您在JavaScript中做到這一點,它會是這樣的:
mydb = db.getSisterDB("whateverDBYoureUsing");
var cursor = mydb.foo.find();
while (cursor.hasNext()) {
var x = cursor.next();
/* replace \\n with \n in x's strings ... */
db.foo.update({_id : x._id}, x);
}
您可以複製這個到.js文件(比如,replace.js),更改數據庫和集合名稱,並運行它作爲腳本從外殼:
mongo replace.js
幾乎是我在找的東西:) – 2010-09-09 22:48:21
哎唷,我希望它不會是這個錯綜複雜的... – 2011-02-16 21:00:43