如何使用mongoimport导入csv

Joe*_*Joe 179 database csv import mongodb mongoimport

尝试导入包含联系信息的CSV:

Name,Address,City,State,ZIP  
Jane Doe,123 Main St,Whereverville,CA,90210  
John Doe,555 Broadway Ave,New York,NY,10010 
Run Code Online (Sandbox Code Playgroud)

运行此似乎不会向数据库添加任何文档:

$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
Run Code Online (Sandbox Code Playgroud)

Trace说imported 1 objects,但启动Mongo shell并运行db.things.find()并不会显示任何新文档.

我错过了什么?

Rob*_*art 238

您的示例适用于MongoDB 1.6.3和1.7.3.以下示例为1.7.3.您使用的是旧版MongoDB吗?

$ cat > locations.csv
Name,Address,City,State,ZIP
Jane Doe,123 Main St,Whereverville,CA,90210
John Doe,555 Broadway Ave,New York,NY,10010
 ctrl-d
$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
connected to: 127.0.0.1
imported 3 objects
$ mongo
MongoDB shell version: 1.7.3
connecting to: test
> use mydb
switched to db mydb
> db.things.find()
{ "_id" : ObjectId("4d32a36ed63d057130c08fca"), "Name" : "Jane Doe", "Address" : "123 Main St", "City" : "Whereverville", "State" : "CA", "ZIP" : 90210 }
{ "_id" : ObjectId("4d32a36ed63d057130c08fcb"), "Name" : "John Doe", "Address" : "555 Broadway Ave", "City" : "New York", "State" : "NY", "ZIP" : 10010 }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这适合我.除了以你的方式创建CSV之外,我之前做过同样的事情.尝试过,它运作得很好.我在MS Excel中创建了原始文件,因此猜测每行末尾都有换行问题. (6认同)
  • 为了能够在导入时进行身份验证,您可以执行 `mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'` (2认同)

小智 27

我对一个类似的问题感到困惑,其中mongoimport没有给我一个错误,但会报告导入0条记录.我使用默认的"另存为...""xls as csv"保存了使用OSX Excel for Mac 2011版本无法正常工作的文件,而没有具体指定"Windows逗号分隔(.csv)"格式.在研究了这个网站并尝试使用"另存为"Windows逗号分隔(.csv)"格式后,mongoimport工作正常.我认为mongoimport期望每行都有换行符,默认的Mac Excel 2011 csv导出没有提供每行末尾的字符.


d.d*_*lov 17

我们需要执行以下命令:

mongoimport --host=127.0.0.1 -d database_name -c collection_name --type csv --file csv_location --headerline
Run Code Online (Sandbox Code Playgroud)

-d是数据库名称

-c是集合名称

--headerline如果使用--type csv或--type tsv,则使用第一行作为字段名称.否则,mongoimport会将第一行导入为不同的文档.

有关更多信息:mongoimport


blu*_*kin 5

如果您在生产环境中工作,您很可能需要进行身份验证.您可以使用此类内容通过适当的凭据对正确的数据库进行身份验证.

mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'
Run Code Online (Sandbox Code Playgroud)