In depth analysis of the import and export of Mongodb data
- 2020-05-24 06:25:05
- OfStack
1. Mongodb export tool mongoexport
The mongoexport tool in Mongodb can export an collection to a file in JSON or CSV format. You can either specify the exported data items as parameters or export the data according to the specified conditions.
Specific usage of mongoexport
[root@localhost mongodb]# ./bin/mongoexport --help
Export MongoDB data to CSV, TSV or JSON files.
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--version print the program's version and exit
-h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for
sets)
--port arg server port. Can also use --host hostname:port
--ipv6 enable IPv6 support (disabled by default)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod database files in the given
path, instead of connecting to a mongod server -
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
--journal enable journaling
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-f [ --fields ] arg comma separated list of field names e.g. -f
name,age
--fieldFile arg file with fields names - 1 per line
-q [ --query ] arg query filter, as a JSON string
--csv export to csv instead of json
-o [ --out ] arg output file; if not specified, stdout is used
--jsonArray output to a json array rather than one object per
line
-k [ --slaveOk ] arg (=1) use secondaries for export if available, default
true
Parameters that
-h: indicates IP for the database host
-u: specifies the user name of the database
-p: specifies the password for the database
-d: specifies the name of the database
-c: specify the name of collection
-f: specifies which columns to export
-o: indicates the file name to export
-q: specifies filtering conditions for exported data
2. Common data export instances
1. Export data directly to files
[root@localhost bin]# ./mongoexport -d my_mongodb -c user -o user.dat
connected to: 127.0.0.1
exported 2 records
[root@localhost bin]# cat user.dat
{ "_id" : { "$oid" : "4f81a4a1779282ca68fd8a5a" }, "uid" : 2, "username" : "Jerry", "age" : 100 }
{ "_id" : { "$oid" : "4f844d1847d25a9ce5f120c4" }, "uid" : 1, "username" : "Tom", "age" : 25 }
[root@localhost bin]#
When you look at the command after it has been executed, you will find that a file students.dat has been generated under the directory
Parameters that
-d indicates the library to use, in this case "my_mongodb"
-c specifies the table to export, in this case "user"
-o specifies the file name to export, in this case, "user.dat"
You can see above that the export is done using the JSON style
2. Export the table t1 in the foo library into json format
[root@localhost bin]# ./mongoexport -d foo -c t1 -o /data/t1.json
connected to: 127.0.0.1
exported 1 records
[root@localhost bin]#
After the export is successful, let's look at the style of the /data/ t1.json file
root@localhost data]# more t1.json
{ "_id" : { "$oid" : "4f927e2385b7a6814a0540a0" }, "age" : 2 }
[root@localhost data]#
3. Export data in CSV format
[root@localhost bin]# ./mongoexport -d foo -c t2 --csv -f age,name -o /data/t2.csv
connected to: 127.0.0.1
exported 1 records
[root@localhost bin]#
View the export results for /data/ t2.csv
[root@localhost data]# more t2.csv
age,name
1,"wwl"
[root@localhost data]#
3. Mongodb import tool mongoexport
The mongoimport tool in Mongodb imports the contents of a particular format file into a specified collection. The tool can import either JSON or CSV data.
The specific use is as follows
[root@localhost mongodb]# ./bin/mongoimport --help
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--version print the program's version and exit
-h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for sets)
--port arg server port. Can also use --host hostname:port
--ipv6 enable IPv6 support (disabled by default)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod database files in the given
path, instead of connecting to a mongod server -
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
--journal enable journaling
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-f [ --fields ] arg comma separated 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
--upsert insert or update objects that already exist
--upsertFields arg comma-separated fields for the query part of the
upsert. You should make sure this is indexed
--stopOnError stop importing at first error rather than continuing
--jsonArray load a json array, not one item per line. Currently
limited to 4MB.
Parameters that
-h: indicates the IP of the database host
-u: specifies the user name of the database
-p: indicates the password of the database
-d: specifies the name of the database
-c: specify the name of collection
-f: specifies which columns to import
4. Common data import instances
1. Import JSON data
[root@localhost mongodb]# ./bin/mongoimport -d test -c students students.dat
connected to: 127.0.0.1
imported 9 objects
[root@localhost mongodb]#
Parameters that
-d: specifies the database name, in this case test
-c: specifies the name collection, in this case students
students.dat: imported file name
2. Import contents in CSV file
[root@localhost mongodb]# ./bin/mongoimport -d test -c students --type csv --headerline --file students_csv.dat
connected to: 127.0.0.1
imported 10 objects
[root@localhost mongodb]#
Parameter description:
-type: specifies the file format to import
-headerline: specifies that line 1 is the column name and does not need to be imported
-file: specifies the file to import
That's all for this article, I hope you enjoy it.