Mongoimport
mongoimport
is a command-line utility that comes with MongoDB and is used for importing content from a JSON, CSV, or TSV file into a MongoDB database. It's particularly useful for initial data loading or for transferring data between different MongoDB instances.
Basic Syntax
The basic syntax of mongoimport
is as follows:
mongoimport --db <database_name> --collection <collection_name> --file <input_file>
Key Options
Here are some of the key options you can use with mongoimport
:
--db <database_name>
: Specifies the database into which to import the data.--collection <collection_name>
: Specifies the collection into which to import the data.--file <input_file>
: Specifies the location and name of the file from which to read data.--type <file_type>
: Specifies the file type to import. The default isjson
. Other options includecsv
andtsv
.--headerline
: Indicates that the first line in a CSV or TSV file is a header line.mongoimport
will use this line as the field names for imported data.--fields <field1,field2,...>
: Specifies the fields for a CSV or TSV import. Use this if the file doesn't have a header line.--jsonArray
: Indicates that the input file contains a single JSON array of documents.--drop
: Drops the collection before importing the data. Be cautious when using this option as it will remove all existing data in the collection.--upsert
: Updates existing objects that match a document in the import file, inserting any that don't match.--upsertFields <field1,field2,...>
: Specifies which fields should be used for the upsert operation.--numInsertionWorkers <number>
: Specifies the number of workers for inserting documents. Useful for parallelizing imports.--ssl
: Connects to MongoDB over SSL.--authenticationDatabase <name>
: Specifies the database that holds the user's credentials.--username <name>
and--password <password>
: Specifies the username and password for authentication.
Examples
Importing a JSON file into a specific database and collection
mongoimport --db testDB --collection testCollection --file data.json
Importing a CSV file with a header line
mongoimport --db testDB --collection testCollection --type csv --headerline --file data.csv
Importing a CSV file without a header line and specifying fields
mongoimport --db testDB --collection testCollection --type csv --fields name,age,email --file data.csv
Importing data with upserts
mongoimport --db testDB --collection testCollection --upsert --file data.json
Considerations
mongoimport
is a single-threaded tool, so importing large amounts of data may take some time.It's not suitable for complex data transformations or validations; it's designed for simple imports.
Be cautious with the
--drop
option, especially in production environments, as it will remove all existing data in the collection.