搜尋

首頁  >  問答  >  主體

MongoDB怎麼批次執行指令?

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

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

天蓬老师天蓬老师2804 天前678

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-24 09:12:43

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

    回覆
    0
  • 高洛峰

    高洛峰2017-04-24 09:12:43

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

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

    回覆
    0
  • 取消回覆