Как импортировать CSV с естественным первичным ключом в mongodb? - PullRequest
1 голос
/ 14 марта 2012

У меня есть большой файл CSV (100M), который я хочу импортировать в mongodb.

Итак, я решил изучить мои варианты с небольшим образцом CSV. Команда mongoimport работает нормально

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

, но создает _id ключи типа ObjectId. Теперь каждая запись в CSV содержит естественный первичный ключ, которым я хочу стать _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.

1 Ответ

6 голосов
/ 15 марта 2012

В строке заголовка вашего CSV-файла просто измените «id» на «_id».

Когда вы используете mongoimport, вы можете обнаружить, что это небольшое ограничение, поскольку оно создает только типы данных строк или чисел.Официальная рекомендация для импорта данных из файлов CSV - написать собственный скрипт, который будет создавать документы, содержащие правильный формат и типы данных, соответствующие вашему приложению.

Однако, если ваш файл .csv содержит только строки и цифры, то изменения заголовочного файла должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...