標籤:mongod oca div auth document SQ 參數 roo 分享圖片
背景:如題幹所述,需要將一份資料匯入到mongo資料庫,減少項目依賴的資料來源。
解決方案:
使用mongo內建的mongoimport工具。
首先在test庫裡建立一個空集合:【import_test】,起初用的匯入指令如下:
[[email protected] mongodb]# ./bin/mongoimport --host 192.168.104.178:17017 -u adminuser -p 112233 --authenticationDatabase=admin -d test -c import_test --fields=userid,serial,create_time --type csv -file csvToMongo.csv 2018-06-11T18:47:07.075+0800 connected to: 192.168.104.178:170172018-06-11T18:47:07.083+0800 imported 15 documents
指令講解:
- --authenticationDatabase:測試叢集使用了身分識別驗證,需要在admin庫裡登陸後,才能操作
- -d:集合所在的庫
- --fields:集合中的欄位名
結果發現mongo的欄位不能正常被建立,如下
只能換一種方式進行匯入,後來發現將欄位名稱寫到檔案後,再匯入就不會有問題,具體如下:
[[email protected] mongodb]# cat myfields.txt useridserialcreate_time
myfields檔案中儲存了這三個欄位,每行一個,然後執行匯入命令:
[[email protected] mongodb]# ./bin/mongoimport --host 192.168.104.178:17017 -u adminuser -p 112233 --authenticationDatabase=admin -d test -c import_test --fieldFile myfields.txt --type csv --file csvToMongo.csv 2018-06-11T18:58:06.894+0800 connected to: 192.168.104.178:170172018-06-11T18:58:06.903+0800 imported 15 documents
結果如下:
最後貼上測試用的csv資料:
[[email protected] mongodb]# cat csvToMongo.csv1504165,1,2016-05-25 04:13:071504585,1,2016-05-25 04:13:071556423,1,2016-05-25 03:02:451557488,1,2016-06-30 06:51:111558460,1,2016-03-29 06:54:501508659,1,2016-05-25 05:10:151500073,1,2015-04-14 13:12:321505064,1,2016-07-01 03:51:341507204,1,2016-09-21 10:28:491506296,1,2015-09-25 04:43:571506765,1,2016-07-01 07:26:101506944,1,2016-06-30 09:36:381506162,1,2015-12-09 10:08:101506814,1,2015-12-09 13:57:071506014,1,2016-05-25 06:38:28
注意:最後的最後,我終於知道為什麼欄位名不正常了,和mongo的指令無關,只是第一個指令最後一個參數寫的有誤,file前面只有一個橫杠“-”,如果寫兩個橫杠,也一樣有正確的結果,哈哈哈
./bin/mongoimport --host 192.168.104.178:17017 -u adminuser -p 112233 --authenticationDatabase=admin -d test -c import_test --fields=userid,serial,create_time --type csv --file csvToMongo.csv
說完了。
MySQL資料匯入到Mongo