MongoDB怎麼批次執行指令?
天蓬老师
天蓬老师 2017-04-24 09:10:43
0
2
673

目前已經找到一種方法,但是該方法有問題,即無法有效處理文件過長的情況。

db.area.insert({'number':'010010','province':'內蒙古自治區','city':'呼和浩特市','disc':'新城區','addr ':'光華街(十四中家屬大樓)','jd':'內蒙古自治區呼和浩特市新城區'})
db.area.insert({'number':'010010','province':'內蒙古自治區','city':'呼和浩特市','disc':'新城區','addr':'興安南路' ,'jd':'內蒙古自治區呼和浩特市新城區'})

cat mon | /usr/local/mongodb/bin/mongo localhost/zip --shell

當insert的文件太長時,該方法會報錯,顯示unexpected token ILLEGAL和unexpected identifier。但是在Robomongo中執行同樣的指令則沒有問題。

因為需要批次處理的是insert和update混合的指令,且涉及多個集合,因此無法使用mongoimport。

使用環境為linux

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(2)
Ty80

直接將所有要執行的程式碼寫成一個 all.js 文件,然后用 mongo localhost/zip all.js 執行。

小葫芦

@Huan Du 的答案是在用 MongoDB Shell 的腳本模式,需要注意的是這跟在Shell裡直接輸入指令有一些小區別,例如 show dbs 是不能用的,因為它不是合法的 Javascript 語言。再例如查詢回傳的是Cursor,而不是直接顯示前20個文檔。錯誤提示會有的,例如說語法錯誤。

具體的文檔請看這裡
MongoDB Scripting
Write Scripts for the mongo Shell
Server-side JavaScript

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板