Import Export Tools
mongoimportThis utility takes a single file that contains 1 JSON/CSV/TSV string per line and inserts it. You have to specify a database and a collection. options: --help produce help message -v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv) -h [ --host ] arg mongo host to connect to ("left,right" for pairs) -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) -u [ --username ] arg username -p [ --password ] arg password --dbpath arg directly access mongod data files in the given path, instead of connecting to a mongod instance - needs to lock the data directory, so cannot be used if a mongod is currently accessing the same path --directoryperdb if dbpath specified, each db is in a separate directory -f [ --fields ] arg comma seperated list of field names e.g. -f name,age --fieldFile arg file with fields names - 1 per line --ignoreBlanks if given, empty fields in csv and tsv will be ignored --type arg type of file to import. default: json (json,csv,tsv) --file arg file to import from; if not specified stdin is used --drop drop collection first --headerline CSV,TSV only - use first line as headers mongoexportThis utility takes a collection and exports to either JSON or CSV. You can specify a filter for the query, or a list of fields to output.
If you want to output CSV, you have to specify the fields in the order you want them. Example options: --help produce help message -v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv) -h [ --host ] arg mongo host to connect to ("left,right" for pairs) -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) -u [ --username ] arg username -p [ --password ] arg password --dbpath arg directly access mongod data files in the given path, instead of connecting to a mongod instance - needs to lock the data directory, so cannot be used if a mongod is currently accessing the same path --directoryperdb if dbpath specified, each db is in a separate directory -q [ --query ] arg query filter, as a JSON string -f [ --fields ] arg comma seperated list of field names e.g. -f name,age --csv export to csv instead of json -o [ --out ] arg output file; if not specified, stdout is used mongodumpThis takes a database and outputs it in a binary representation. This is mostly used for doing hot backups of a database.
options: --help produce help message -v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv) -h [ --host ] arg mongo host to connect to ("left,right" for pairs) -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) -u [ --username ] arg username -p [ --password ] arg password --dbpath arg directly access mongod data files in the given path, instead of connecting to a mongod instance - needs to lock the data directory, so cannot be used if a mongod is currently accessing the same path --directoryperdb if dbpath specified, each db is in a separate directory -o [ --out ] arg (=dump) output directory Example: Dumping EverythingTo dump all of the collections in all of the databases, run mongodump with just the --host: $ ./mongodump --host prod.example.com connected to: prod.example.com all dbs DATABASE: log to dump/log log.errors to dump/log/errors.bson 713 objects log.analytics to dump/log/analytics.bson 234810 objects DATABASE: blog to dump/blog blog.posts to dump/log/blog.posts.bson 59 objects DATABASE: admin to dump/admin You'll then have a folder called "dump" in your current directory. If you're running mongod locally on the default port, you can just do: $ ./mongodump Example: Dumping a Single CollectionIf we just want to dump a single collection, we can specify it and get a single .bson file. $ ./mongodump --db blog --collection posts connected to: 127.0.0.1 DATABASE: blog to dump/blog blog.posts to dump/blog/posts.bson 59 objects mongorestoreThis takes the output from mongodump and restores it. usage: ./mongorestore [options] [directory or filename to restore from] options: --help produce help message -v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv) -h [ --host ] arg mongo host to connect to ("left,right" for pairs) -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) -u [ --username ] arg username -p [ --password ] arg password --dbpath arg directly access mongod data files in the given path, instead of connecting to a mongod instance - needs to lock the data directory, so cannot be used if a mongod is currently accessing the same path --directoryperdb if dbpath specified, each db is in a separate directory --drop drop each collection before import --objcheck validate object before inserting |