MongoDB的mongoimport UPSERT
问题描述:
我试图做一个批量更新有以下MongoDB的mongoimport UPSERT
mongoimport -d my_db -c db_collection -upsertFields email ~/Desktop/update_list.csv
,我试图导入看起来像这样的CSV。
email, full_name
[email protected],stackoverflow
[email protected],mongodb
它应该检查电子邮件列作为查询arg并相应地更新全名。但是,没有导入,它遇到错误。
exception:Failure parsing JSON string near: [email protected]
[email protected],abc
imported 0 objects
encountered 99398 errors
问题在哪里?我应该怎么做呢?
答
我认为CSV文件中的数据必须用双引号括起来。
答
Add --type csv
否则,它假定您的输入是json。
此外,看起来应该通过--headerline使它使用文件的第一行作为标题。
答
您的mongoimport命令缺少--upsert选项,与--upsertFields结合使用时需要。尝试:
mongoimport -d my_db -c db_collection --upsert --upsertFields email ~/Desktop/update_list.csv
我重新保存了我的csv,所以我的数据都是双引号。我设法让它全部导入,但没有更新。我最终有重复。 – crayfish 2011-02-07 05:09:21