包含联系方式的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说导入了1个对象,但是在MongoDB shell中运行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 }
以上这些答案都很棒。这也是开发一个功能齐全的应用程序的方法。
但是如果你想要快速创建原型,想要在集合不断变化时保持灵活性,以及最小化你早期的代码库,有一种更简单的方法,但很少讨论。
你现在基本上可以放弃蒙古进口了。如果在这里提到这个问题,我可以节省3个小时。让我分享给大家:
Mongodb有一个名为Mongo Compass的GUI,它有csv和json导入功能,只需点击即可开箱即用。它是Mongo生态系统的正式组成部分。在撰写本文时,它是免费的,并且非常适合我的用例。
https://www.mongodb.com/products/compass
You simply get MongoDB compass running on your machine by following the simple installation. A couple of fields for DB connection and authentication directly in the GUI.
Import the csv/json file. It took less than a second on a 30KB file to be parsed before user (me) validates.
Validate the "type" of each property. Great feature, I could directly mention the property types such as booleans, integers, etc. In my experience, they seem all default to string. You can update before importing. Dates were more finicky and needed special attention on the coding side.
One click further the csv is a collection in your mongo db local or on the cloud. Voila!