如何使用Mongoimport进口CSV
-
11-10-2019 - |
题
试图通过联系信息导入CSV:
Name,Address,City,State,ZIP
Jane Doe,123 Main St,Whereverville,CA,90210
John Doe,555 Broadway Ave,New York,NY,10010
运行此操作似乎并没有在数据库中添加任何文档:
$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
Trace说 imported 1 objects
, ,但要发射蒙哥外壳并跑步 db.things.find()
没有显示任何新文档。
我想念什么?
解决方案
您的示例为我使用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 }
其他提示
我感到困惑的是一个类似的问题,其中蒙古import没有给我一个错误,但会报告导入0个记录。我保存了使用Mac 2011版本的OSX Excel使用默认的“另存为..”“ XLS AS CSV”的文件,而无需专门指定“ Windows Comma Spiel(.csv)”格式。在研究了该网站并尝试“再次使用“ Windows Comma spareed(.csv)”格式的“再次保存”之后,Mongoimport工作正常。我认为Mongoimport期望每行上有一个newline角色,而默认Mac Excel 2011 CSV导出没有提供此信息。在每行末尾的角色。
我们需要执行以下命令:
mongoimport --host=127.0.0.1 -d database_name -c collection_name --type csv --file csv_location --headerline
-d是数据库名称
-c是收藏名称
- 标准线如果使用-Type CSV或-Type TSV,则将第一行用作字段名称。否则,Mongoimport将以独特的文档导入第一行。
了解更多信息: Mongoimport
如果您在生产环境中工作,您很可能需要身份验证。您可以使用类似的内容来验证具有适当凭据的正确数据库。
mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'
检查您在文件末尾有一个空白行,否则最后一行将在某些版本的Mongoimport上忽略
我在Mongoimport Shell上使用它
mongoimport --db db_name --collection collection_name --type csv --file C:\\Your_file_path\target_file.csv --headerline
类型可以选择CSV/TSV/JSON,但只有CSV/TSV可以使用 --headerline
您可以阅读更多有关 官方文档.
首先,您应该从 mongo
外壳,然后执行 mongoimport
这样的命令:
Manojs-MacBook-Air:bin Aditya$ mongoimport -d marketdata -c minibars
--type csv
--headerline
--file '/Users/Aditya/Downloads/mstf.csv'
2017-05-13T20:00:41.989+0800 connected to: localhost
2017-05-13T20:00:44.123+0800 imported 97609 documents
Manojs-MacBook-Air:bin Aditya$
罗伯特·斯图尔特(Robert Stewart)的答案很棒。
我想补充一点,您还可以使用类似的字段键入您的字段 - 像这样的视野:
mongoimport -d myDb -c myCollection --type csv --file myCsv.csv
--columnsHaveTypes --fields "label.string(),code.string(),aBoolean.boolean()"
(小心您的字段之间的逗号之后没有任何空间)
对于其他类型,请参见此处: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes
对于3.4版本,请使用以下语法:
mongoimport -u "username" -p "password" -d "test" -c "collections" --type csv --file myCsv.csv --headerline
三天后,我终于自己做到了。感谢所有支持我的用户。
C: wamp mongodb bin> mongoexport -db proj_mmm-收集产品 - csv -fieldfile offeress_fields.txt -out offerings.csv
执行Mongoimport之后,请使用此此事
它将返回导入的对象数量
use db
db.collectionname.find().count()
将返回对象数。
利用 :
mongoimport -d 'database_name' -c 'collection_name' --type csv --headerline --file filepath/file_name.csv
MONGOIMPORT -D测试-C测试-TTYPE CSV-文件samplecsvfile_119kb.csv-headerline
检查收集数据: -
var collections = db.getCollectionNames();
for(var i = 0; i< collections.length; i++)
{
print('Collection: ' + collections[i]);
// print the name of each collection
db.getCollection(collections[i]).find().forEach(printjson);
//and then print the json of each of its elements
}
1]We can save xsl as .csv file
2] Got to MongoDB bin pathon cmd - > cd D:\Arkay\soft\MongoDB\bin
3] Run below command
> mongoimport.exe -d dbname -c collectionname --type csv --file "D:\Arkay\test.csv" --headerline
4] Verify on Mongo side using below coomand.
>db.collectioname.find().pretty().limit(1)
奇怪没有人提到 --uri
旗帜:
mongoimport --uri connectionString -c questions --type csv --file questions.csv --headerline
为未来的读者分享:
在我们的情况下,我们需要添加 host
使它起作用的参数
mongoimport -h mongodb://someMongoDBhostUrl:somePORTrunningMongoDB/someDB -d someDB -c someCollection -u someUserName -p somePassword --file someCSVFile.csv --type csv --headerline --host=127.0.0.1
我的要求是导入 .csv (with no headline)
到远程 MongoDB
实例。为了 mongoimport v3.0.7
下面的命令对我有用:
mongoimport -h <host>:<port> -u <db-user> -p <db-password> -d <database-name> -c <collection-name> --file <csv file location> --fields <name of the columns(comma seperated) in csv> --type csv
例如:
mongoimport -h 1234.mlab.com:61486 -u arpitaggarwal -p password -d my-database -c employees --file employees.csv --fields name,email --type csv
以下是导入后的外观的屏幕截图:
在哪里 name
和 email
是列 .csv
文件。
给出 .csv
我只有一列的文件 没有标题, ,下面的命令对我有用:
mongoimport -h <mongodb-host>:<mongodb-port> -u <username> -p <password> -d <mongodb-database-name> -c <collection-name> --file file.csv --fields <field-name> --type csv
在哪里 字段名称是指标题名称 列 .csv
文件。