On this page
mongorestore
macOS Sierra and Go 1.6 Incompatibility
Users running on macOS Sierra require the 3.2.10 or newer version of mongorestore.
Synopsis
The mongorestore program loads data from either a binary database dump created by mongodump or the standard input (starting in version 3.0.0) into a mongod or mongos instance.
For an overview of mongorestore usage, see Back Up and Restore with MongoDB Tools.
Syntax
Run mongorestore from the system command line, not the mongo shell.
mongorestore [options] [<directory>/<BSON file>]
For example, to restore from a dump directory to a local mongod instance running on port 27017:
mongorestore dump/
As mongorestore restores from the dump/ directory, it creates the database and collections as needed and logs its progress:
2019-07-13T10:05:40.353-0400 preparing collections to restore from
2019-07-13T10:05:40.386-0400 reading metadata for test.bakesales from dump/test/bakesales.metadata.json
2019-07-13T10:05:40.403-0400 reading metadata for test.salaries from dump/test/salaries.metadata.json
2019-07-13T10:05:40.434-0400 restoring test.bakesales from dump/test/bakesales.bson
2019-07-13T10:05:40.464-0400 restoring test.salaries from dump/test/salaries.bson
2019-07-13T10:05:40.473-0400 no indexes to restore
2019-07-13T10:05:40.473-0400 finished restoring test.bakesales (21 documents)
2019-07-13T10:05:40.490-0400 no indexes to restore
2019-07-13T10:05:40.491-0400 finished restoring test.salaries (10 documents)
2019-07-13T10:05:40.491-0400 restoring users from dump/admin/system.users.bson
2019-07-13T10:05:40.559-0400 restoring roles from dump/admin/system.roles.bson
2019-07-13T10:05:40.711-0400 done
You can also restore a specific collection or collections from the dump/ directory. For example, the following operation restores a single collection from corresponding data files in the dump/ directory:
mongorestore --nsInclude test.purchaseorders dump/
If the dump/ directory does not contain the corresponding data file for the specified namespace, no data will be restored. For example, the following specifies a collection namespace that does not have a corresponding data in the dump/ directory:
mongorestore --nsInclude foo.bar dump/
The mongorestore outputs the following messages:
2019-07-13T10:06:36.095-0400 preparing collections to restore from
2019-07-13T10:06:36.095-0400 done
For more examples, see Examples.
For more information on the options and arguments, see Options.
Behavior
Insert Only
mongorestore can create a new database or add data to an existing database. However, mongorestore performs inserts only and does not perform updates. That is, if restoring documents to an existing database and collection and existing documents have the same value _id field as the to-be-restored documents, mongorestore will not overwrite those documents.
Rebuild Indexes
mongorestore recreates indexes recorded by mongodump.
Note
Starting in MongoDB 2.6, creating indexes will error if an index key in an existing document exceeds the limit. See Enforce Index Key Length Limit for more information and solution.
If you have an existing data set that violates this limit but want to resolve the index issue after restoring the data, you can disable the default index key length validation on the target database by setting the mongod instance’s failIndexKeyTooLong parameter to false.
Version Compatibility
The data format used by mongodump from version 2.2 or later is incompatible with earlier versions of mongod. Do not use recent versions of mongodump to back up older data stores.
Exclude system.profile Collection
mongorestore does not restore the system.profile collection data.
Required Access
To restore data to a MongoDB deployment that has access control enabled, the restore role provides the necessary privileges to restore data from backups if the data does not include system.profile collection data and you run mongorestore without the --oplogReplay option.
If the backup data includes system.profile collection data or you run with --oplogReplay, you need additional privileges:
system.profile |
If the backup data includes Both the built-in roles |
--oplogReplay |
To run with Grant only to users who must run |
Options
Changed in version 3.0.0: mongorestore removed the --filter, --dbpath, and the --noobjcheck options.
--verbose,-v-
Increases the amount of internal reporting returned on standard output or in log files. Increase the verbosity with the
-vform by including the option multiple times, (e.g.-vvvvv.)
--quiet-
Runs mongorestore in a quiet mode that attempts to limit the amount of output.
This option suppresses:
- output from database commands
- replication activity
- connection accepted events
- connection closed events
--uri<connectionString>-
New in version 3.4.6.
Specify a resolvable URI connection string to connect to the MongoDB deployment.
--uri "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"For more information on the components of the connection string, see the Connection String URI Format documentation.
Important
The following command-line options cannot be used in conjunction with
--urioption:--host--port--db--username--password(if the URI connection string also includes the password)--authenticationDatabase--authenticationMechanism
Instead, specify these options as part of your
--uriconnection string.
--host<hostname><:port>,-h<hostname><:port>-
Default: localhost:27017
Specifies a resolvable hostname for the
mongodto which to connect. By default, the mongorestore attempts to connect to a MongoDB instance running on the localhost on port number27017.To connect to a replica set, specify the
replSetNameand a seed list of set members, as in the following:--host <replSetName>/<hostname1><:port>,<hostname2><:port>,<...>When specifying the replica set list format, mongorestore always connects to the primary.
You can also connect to any single member of the replica set by specifying the host and port of only that member:
--host <hostname1><:port>Changed in version 3.0.0: If you use IPv6 and use the
<address>:<port>format, you must enclose the portion of an address and port combination in brackets (e.g.[<address>]).