目前已經(jīng)找到一種方法,但是該方法有問題,即無法有效處理文件過長的情況。
db.area.insert({'number':'010010','province':'內(nèi)蒙古自治區(qū)','city':'呼和浩特市','disc':'新城區(qū)','addr ':'光華街(十四中家屬大樓)','jd':'內(nèi)蒙古自治區(qū)呼和浩特市新城區(qū)'})
db.area.insert({'number':'010010','province':'內(nèi)蒙古自治區(qū)','city':'呼和浩特市','disc':'新城區(qū)','addr':'興安南路' ,'jd':'內(nèi)蒙古自治區(qū)呼和浩特市新城區(qū)'})
cat mon | /usr/local/mongodb/bin/mongo localhost/zip --shell
當(dāng)insert的文件太長時,該方法會報錯,顯示unexpected token ILLEGAL和unexpected identifier。但是在Robomongo中執(zhí)行同樣的指令則沒有問題。
因為需要批次處理的是insert和update混合的指令,且涉及多個集合,因此無法使用mongoimport。
使用環(huán)境為linux
歡迎選擇我的課程,讓我們一起見證您的進步~~
直接將所有要執(zhí)行的程式碼寫成一個 all.js
文件,然后用 mongo localhost/zip all.js
執(zhí)行。
@Huan Du 的答案是在用 MongoDB Shell 的腳本模式,需要注意的是這跟在Shell裡直接輸入指令有一些小區(qū)別,例如 show dbs 是不能用的,因為它不是合法的 Javascript 語言。再例如查詢回傳的是Cursor,而不是直接顯示前20個文檔。錯誤提示會有的,例如說語法錯誤。
具體的文檔請看這裡
MongoDB Scripting
Write Scripts for the mongo Shell
Server-side JavaScript