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.


Related articles: