Warning
Data Import and Export Conflicts With ($) and (.)
Starting in MongoDB 5.0, document field names can be prefixed with a
dollar character ($) and can contain a period character (.).
However, mongoimport and mongoexport
won't work with field names that use those characters.
MongoDB Extended JSON v2
cannot differentiate between type wrappers and fields that happen to
have the same name as type wrappers. Do not use Extended JSON
formats in contexts where the corresponding BSON representations
might include ($) prefixed keys. The
DBRef mechanism is an exception to this
general rule.
There are also restrictions on using mongoimport and
mongoexport with (.) in field names. Since CSV
files use the (.) to represent data hierarchies, a (.) in a
field name will be misinterpreted as a level of nesting.
Behavior
Type Fidelity
If you need to preserve all rich BSON data types when using
mongoexport to perform full instance backups, be sure to
specify Extended JSON v2.0 (Canonical mode) to the
--jsonFormat option to
mongoexport, in the following fashion:
mongoexport --jsonFormat=canonical --collection=<coll> <connection-string>
If --jsonFormat is unspecified,
mongoexport outputs data in
Extended JSON v2.0 (Relaxed mode) by default.
mongoimport will automatically use the JSON
format found in the specified target data file when restoring. For
example, it will use Extended JSON v2.0 (Canonical mode) if the target data export file was
created by mongoexport with --jsonFormat=canonical
specified.
JSON Format
mongoimport requires import data to be in either
Extended JSON v2.0 (Canonical) or
Extended JSON v2.0 (Relaxed) format by default. For import data
formatted using Extended JSON v1.0, specify the
--legacy option.
Tip
In general, the versions of mongoexport and
mongoimport should match. That is, to import data
created from mongoexport, you should use the
corresponding version of mongoimport.
Document Order
By default, mongoimport may insert documents in a random order. To
preserve document order during the restore process, use
--maintainInsertionOrder.
Encoding
mongoimport only supports data files that are UTF-8 encoded.
Using other encodings produces errors.
FIPS
mongoimport automatically creates FIPS-compliant
connections to a mongod/mongos that is
configured to use FIPS mode.
Write Concern
If you specify write concern in both the
--writeConcern option and the
--uri connection string option, the
--writeConcern value overrides
the write concern specified in the URI string.
Batches
mongoimport uses a maximum batch size of 100,000 to
perform bulk insert/upsert operations.
Time Series Collections
To import time series data, you must create a time series collection
before running mongoimport. mongoimport does not support creating time series collections
automatically. For more information about creating a collection, see createCollection().
Required Access
In order to connect to a mongod that enforces authorization
with the --auth option, you must use the
--username and --password options. The connecting user must
possess, at a minimum, the readWrite role on the database
into which they are importing data.