2012-03-14 79 views
1

我有一個很大的CSV文件(100M),我想將它導入到mongodb中。如何使用自然主鍵將CSV導入到mongodb中?

所以,我已經開始探索我的選擇與小樣本CSV。該mongoimport命令工作正常

mongoimport.exe -d mydb -c mycoll --type csv --file .\aaa.csv --headerline --stopOnError 

,但它創造ObjectId類型的_id鍵。現在CSV中的每條記錄都包含一個自然主鍵,我希望它成爲mongo中的_id

我該如何處理導入?

EDIT

最上面兩行是:

id,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,lll,mmm,nnn,ooo,ppp,qqq,rrr,sss,ttt,uuu,vvv,www,xxx,yyy,zzz,q11,q22,q33,q44,q55,q66,q77,q88 
72184515,4522534,"xo xo","2011-08-01 00:00:00","here",4848,4185,100,"xa xa","oops","yep",39.0797,-94.4067,"aha","qw","er","ty","opo",39.1029,-94.3826,2.06146,2,"q",1,"w","e","r","t","y","a","s","d","r","12787","" 

id列應成爲_id

+0

csv的頂部部分(帶標題) – 2012-03-14 14:16:08

回答

6

在.csv文件的標題行中,只需將「id」更改爲「_id」即可。

當您使用mongoimport時,您可能會發現它有一點限制,因爲它只創建字符串或數字的數據類型。關於從CSV文件導入數據的官方建議是編寫自己的腳本,該腳本將創建包含正確格式和數據類型的文檔以適合您的應用程序。

但是,如果您的.csv文件只包含字符串和數字,那麼更改頭文件就足夠了。

+1

請注意,當前版本的'mongoimport'現在可以正確導入十進制數字爲Double – 2015-02-21 20:29:47