如何使用自然主键将CSV导入到mongodb中?

问题描述:

我有一个很大的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

在.csv文件的标题行中,只需将“id”更改为“_id”即可。

当您使用mongoimport时,您可能会发现它有一点限制,因为它只创建字符串或数字的数据类型。关于从CSV文件导入数据的官方建议是编写自己的脚本,该脚本将创建包含正确格式和数据类型的文档以适合您的应用程序。

但是,如果您的.csv文件只包含字符串和数字,那么更改头文件就足够了。

+1

请注意,当前版本的'mongoimport'现在可以正确导入十进制数字为Double – 2015-02-21 20:29:47