How to Import a CSV into MongoDB
This article will show you how to import a CSV into MongoDB through the command line and the MongoDB shell. Maybe you’re making the switch to MongoDB for the first time and migrating your data over, or maybe you have data from some other source that you’d like to have in your database, whatever the case we’ll show you how to do it. We’ll do a simple demo with a demo CSV file so you can see how we do it. We’ll be using a small dataset so we can focus entirely on the process of the import.
- You should have MongoDB installed.
- Although not required we recommend you have some experience using the command line.
Importing CSV Data into MongoDB
Let’s jump right into how to import a csv file into MongoDB.
The CSV File
For our demonstration we have kept things very simple and have a csv file
products.csv that has some data about the products for a grocery store in a very small town. There are 10 products in this file so we know how many to expect after the import.
Let’s take a look to see what’s in the file:
1 Gallon Soy Milk,2.5,12
1 Gallon Almond Milk ,2.75,22
Six Pack Soda,3,3
Salt and Vinegar Chips ,2.25,22
Notice that the first row holds the name for the field.
If you want to create this file and follow along please do. You can create the file with whatever method you’re most comfortable and using whatever IDE you’d like.
### Make sure MongoDB is running Now that we have a csv file with the data we’d like to import the next thing you’ll need to do is get MongoDB running. If it is already running you can skip this step.
It’s easy to start MongoDB by executing this command:
Make sure the process starts, our response looked something like this telling us that it has started and is listening on the default MongoDB port of 27017:
2019-06-05T13:34:27.858-0500 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2019-06-05T13:34:27.861-0500 I NETWORK [initandlisten] waiting for connections on port 27017
Navigate to the directory where your CSV file is
To make this process simpler we’re gonna navigate to the directory where our csv lives.
Now we can use a
tree . to see that our
products.csv file lives in this directory
Use the mongoimport command
Now we’ll use the
mongoimport command with a few flags to import the data. Let’s take a look at the command and then break down the options afterward:
We’ll explain the flags we used but you can also use the help command
mongoimport --help to get the same information.
- –type: The input format to import: json, csv, or tsv. We are using csv so that’s what we specify.
- -d: Specifies what database to use. We used the
- -c: Specifies what collection to use. We used a collection called
- –headerline: Specifies that the first row in our csv file should be the field names.
- –drop: Specifies that we want to drop the collection before importing documents.
Lastly we specify the file which we want to import
products.csv. Because it lives in our current directory we don’t have to provide any path but if you are not in the directory you’ll have to provide a path.
This is the response we got:
2019-06-05T13:46:00.555-0500 connected to: localhost
2019-06-05T13:46:00.555-0500 dropping: test.products
2019-06-05T13:46:00.611-0500 imported 10 documents
It looks like it worked but we want to be a bit skeptical and verify with our own eyes.
Verify the Import Worked
To verify that the import looked we can use the MongoDB shell to query the collection and actually see the documents in the collection. To open the MongoDB shell simply type the following in the command line:
You’ll then be in the MongoDB prompt and from here we can select the database:
switched to db test
Then you can query all the documents in the
products collection like so:
"_id" : ObjectId("5cf80de8218efd0aa5e5ab60"),
"ProductName" : "Paper Towels",
"Price" : 1.25,
"Quantity" : 8
"_id" : ObjectId("5cf80de8218efd0aa5e5ab61"),
"ProductName" : "1 Gallon Soy Milk",
"Price" : 2.5,
"Quantity" : 12
"_id" : ObjectId("5cf80de8218efd0aa5e5ab62"),
"ProductName" : "Salt and Vinegar Chips",
"Price" : 2.25,
"Quantity" : 22
"_id" : ObjectId("5cf80de8218efd0aa5e5ab63"),
"ProductName" : "Red Wine",
"Price" : 14,
"Quantity" : 3
"_id" : ObjectId("5cf80de8218efd0aa5e5ab64"),
"ProductName" : "Barbecue Chips",
"Price" : 2.25,
"Quantity" : 1
"_id" : ObjectId("5cf80de8218efd0aa5e5ab65"),
"ProductName" : "Six Pack Soda",
"Price" : 3,
"Quantity" : 3
"_id" : ObjectId("5cf80de8218efd0aa5e5ab66"),
"ProductName" : "1 Gallon Almond Milk",
"Price" : 2.75,
"Quantity" : 22
"_id" : ObjectId("5cf80de8218efd0aa5e5ab67"),
"ProductName" : "Chocolate Bar",
"Price" : 1,
"Quantity" : 4
"_id" : ObjectId("5cf80de8218efd0aa5e5ab68"),
"ProductName" : "Breath Mints",
"Price" : 0.5,
"Quantity" : 11
"_id" : ObjectId("5cf80de8218efd0aa5e5ab69"),
"ProductName" : "Gatorade",
"Price" : 2,
"Quantity" : 21
Now we see with our own eyes that the documents were imported into MongoDB.
In this tutorial we showed you how to import your data from a CSV file into a collection in MongoDB. The process is pretty simple and the
mongoimport --help command can really be your friend as the options are concise and well explained. If you have a complex migration or still don’t know how you’ll import your data please don’t hesitate to reach out to us at Object Rocket. Thanks for joining us!
Pilot the ObjectRocket Platform Free!
Try Fully-Managed CockroachDB, Elasticsearch, MongoDB, PostgreSQL (Beta) or Redis.Get Started