6

我正在尝试使用以下内容进行批量更新

mongoimport -d my_db -c db_collection -upsertFields email ~/Desktop/update_list.csv

我试图导入的 csv 看起来像这样。

email, full_name
stack@overflow.com,stackoverflow
mongo@db.com,mongodb

它应该检查电子邮件列作为查询参数并相应地更新全名。但是,没有导入任何内容,它遇到了错误。

exception:Failure parsing JSON string near: abc@sa
abc@sasa.com,abc
imported 0 objects
encountered 99398 errors

问题出在哪里?我应该怎么做?

4

3 回答 3

16

您的 mongoimport 命令缺少 --upsert 选项,该选项需要与 --upsertFields 结合使用。尝试:

mongoimport -d my_db -c db_collection --upsert --upsertFields email ~/Desktop/update_list.csv
于 2011-11-09T11:34:44.823 回答
6

添加 --type csv

否则,它假定您的输入是 json。

此外,看起来您应该传递 --headerline 以使其使用文件的第一行作为标题。

于 2011-02-06T18:41:22.703 回答
0

我假设您的 CSV 文件中的数据必须是双引号。

于 2011-02-06T18:04:12.373 回答