Introduction to Mongodb Data Export Command mongoexport and Import Command mongoimport

Posted by roxiroxi on Sun, 07 Jul 2019 01:13:10 +0200

Reprinted: http://chenzhou123520.iteye.com/blog/1641319

I. Export tool mongoexport

MongoDB The mongoexport tool can export a collection into JSON or CSV formats. You can export data items by specifying parameters, or you can export data by specifying conditions. The specific usage of mongoexport is as follows:

  1. [root@localhost mongodb]# ./bin/mongoexport --help  
  2. Export MongoDB data to CSV, TSV or JSON files.  
  3.   
  4. options:  
  5.   --help                    produce help message  
  6.   -v [ --verbose ]          be more verbose (include multiple times for more   
  7.                             verbosity e.g. -vvvvv)  
  8.   --version                 print the program's version and exit  
  9.   -h [ --host ] arg         mongo host to connect to ( <set name>/s1,s2 for   
  10.                             sets)  
  11.   --port arg                server port. Can also use --host hostname:port  
  12.   --ipv6                    enable IPv6 support (disabled by default)  
  13.   -u [ --username ] arg     username  
  14.   -p [ --password ] arg     password  
  15.   --dbpath arg              directly access mongod database files in the given   
  16.                             path, instead of connecting to a mongod  server -   
  17.                             needs to lock the data directory, so cannot be used  
  18.                             if a mongod is currently accessing the same path  
  19.   --directoryperdb          if dbpath specified, each db is in a separate   
  20.                             directory  
  21.   --journal                 enable journaling  
  22.   -d [ --db ] arg           database to use  
  23.   -c [ --collection ] arg   collection to use (some commands)  
  24.   -f [ --fields ] arg       comma separated list of field names e.g. -f   
  25.                             name,age  
  26.   --fieldFile arg           file with fields names - 1 per line  
  27.   -q [ --query ] arg        query filter, as a JSON string  
  28.   --csv                     export to csv instead of json  
  29.   -o [ --out ] arg          output file; if not specified, stdout is used  
  30.   --jsonArray               output to a json array rather than one object per   
  31.                             line  
  32.   -k [ --slaveOk ] arg (=1) use secondaries for export if available, default   
  33.                             true  

Description of parameters:

- h: data base Host IP

- u: Specify the username of the database

- p: Specify the password of the database

- d: Specify the name of the database

- c: Specify the name of collection

- f: Specifies which columns to export

- o: Specify the name of the file to export

- q: Indicate the filter conditions for the exported data

 

Example: There is a students collection in the test library with the following data:

  1. > db.students.find()  
  2. "_id" : ObjectId("5031143350f2481577ea81e5"), "classid" : 1, "age" : 20, "name" : "kobe" }  
  3. "_id" : ObjectId("5031144a50f2481577ea81e6"), "classid" : 1, "age" : 23, "name" : "nash" }  
  4. "_id" : ObjectId("5031145a50f2481577ea81e7"), "classid" : 2, "age" : 18, "name" : "james" }  
  5. "_id" : ObjectId("5031146a50f2481577ea81e8"), "classid" : 2, "age" : 19, "name" : "wade" }  
  6. "_id" : ObjectId("5031147450f2481577ea81e9"), "classid" : 2, "age" : 19, "name" : "bosh" }  
  7. "_id" : ObjectId("5031148650f2481577ea81ea"), "classid" : 2, "age" : 25, "name" : "allen" }  
  8. "_id" : ObjectId("5031149b50f2481577ea81eb"), "classid" : 1, "age" : 19, "name" : "howard" }  
  9. "_id" : ObjectId("503114a750f2481577ea81ec"), "classid" : 1, "age" : 22, "name" : "paul" }  
  10. "_id" : ObjectId("503114cd50f2481577ea81ed"), "classid" : 2, "age" : 24, "name" : "shane" }  

As can be seen from the above, there are three fields in the document: classid, age, name.

1. Export data directly to files

  1. [root@localhost mongodb]# ./bin/mongoexport -d test -c students -o students.dat  
  2. connected to: 127.0.0.1  
  3. exported 9 records  

When the command is executed, we use ll command to check it and find that a student. dat file is generated in the directory.

  1. -rw-r--r-- 1 root root   869 Aug 21 00:05 students.dat  

See the file information, the details are as follows:

  1. [root@localhost mongodb]# cat students.dat   
  2. "_id" : { "$oid" : "5031143350f2481577ea81e5" }, "classid" : 1"age" : 20"name" : "kobe" }  
  3. "_id" : { "$oid" : "5031144a50f2481577ea81e6" }, "classid" : 1"age" : 23"name" : "nash" }  
  4. "_id" : { "$oid" : "5031145a50f2481577ea81e7" }, "classid" : 2"age" : 18"name" : "james" }  
  5. "_id" : { "$oid" : "5031146a50f2481577ea81e8" }, "classid" : 2"age" : 19"name" : "wade" }  
  6. "_id" : { "$oid" : "5031147450f2481577ea81e9" }, "classid" : 2"age" : 19"name" : "bosh" }  
  7. "_id" : { "$oid" : "5031148650f2481577ea81ea" }, "classid" : 2"age" : 25"name" : "allen" }  
  8. "_id" : { "$oid" : "5031149b50f2481577ea81eb" }, "classid" : 1"age" : 19"name" : "howard" }  
  9. "_id" : { "$oid" : "503114a750f2481577ea81ec" }, "classid" : 1"age" : 22"name" : "paul" }  
  10. "_id" : { "$oid" : "503114cd50f2481577ea81ed" }, "classid" : 2"age" : 24"name" : "shane" }  

Description of parameters:

- d: The library specified for use, in this case test

- c: Specifies the set to be exported, in this case students

- o: Specify the name of the file to export, in this case students.dat

As can be seen from the above results, we export data in JSON format by default instead of displaying the specified export style. If we need to export data in CSV format, we need to use the -- CSV parameter, as follows:

  1. [root@localhost mongodb]# ./bin/mongoexport -d test -c students --csv -f classid,name,age -o students_csv.dat  
  2. connected to: 127.0.0.1  
  3. exported 9 records  
  4. [root@localhost mongodb]# cat students_csv.dat   
  5. classid,name,age  
  6. 1.0,"kobe",20.0  
  7. 1.0,"nash",23.0  
  8. 2.0,"james",18.0  
  9. 2.0,"wade",19.0  
  10. 2.0,"bosh",19.0  
  11. 2.0,"allen",25.0  
  12. 1.0,"howard",19.0  
  13. 1.0,"paul",22.0  
  14. 2.0,"shane",24.0  
  15. [root@localhost mongodb]#   

Description of parameters:

- csv: specifies the format to be exported to CSV

- f: Indicates the need to export data for the three columns classid, name, age

As can be seen from the above results, mongoexport successfully exported the data to students_csv.dat file according to CSV format.

 

Import tool mongoimport

The mongoimport tool in Mongodb can import content from a specific format file into a specified collection. The tool can import data in JSON format or CSV format. The specific use is as follows:

  1. [root@localhost mongodb]# ./bin/mongoimport --help  
  2. options:  
  3.   --help                  produce help message  
  4.   -v [ --verbose ]        be more verbose (include multiple times for more   
  5.                           verbosity e.g. -vvvvv)  
  6.   --version               print the program's version and exit  
  7.   -h [ --host ] arg       mongo host to connect to ( <set name>/s1,s2 for sets)  
  8.   --port arg              server port. Can also use --host hostname:port  
  9.   --ipv6                  enable IPv6 support (disabled by default)  
  10.   -u [ --username ] arg   username  
  11.   -p [ --password ] arg   password  
  12.   --dbpath arg            directly access mongod database files in the given   
  13.                           path, instead of connecting to a mongod  server -   
  14.                           needs to lock the data directory, so cannot be used   
  15.                           if a mongod is currently accessing the same path  
  16.   --directoryperdb        if dbpath specified, each db is in a separate   
  17.                           directory  
  18.   --journal               enable journaling  
  19.   -d [ --db ] arg         database to use  
  20.   -c [ --collection ] arg collection to use (some commands)  
  21.   -f [ --fields ] arg     comma separated list of field names e.g. -f name,age  
  22.   --fieldFile arg         file with fields names - 1 per line  
  23.   --ignoreBlanks          if given, empty fields in csv and tsv will be ignored  
  24.   --type arg              type of file to import.  default: json (json,csv,tsv)  
  25.   --file arg              file to import from; if not specified stdin is used  
  26.   --drop                  drop collection first   
  27.   --headerline            CSV,TSV only - use first line as headers  
  28.   --upsert                insert or update objects that already exist  
  29.   --upsertFields arg      comma-separated fields for the query part of the   
  30.                           upsert. You should make sure this is indexed  
  31.   --stopOnError           stop importing at first error rather than continuing  
  32.   --jsonArray             load a json array, not one item per line. Currently   
  33.                           limited to 4MB.  

Description of parameters:

- h: Indicates the IP of the database host

- u: Specify the username of the database

- p: Specify the password of the database

- d: Specify the name of the database

- c: Specify the name of collection

- f: Specify which columns to import

 

Example: First delete the data in students and verify it

  1. > db.students.remove()  
  2. > db.students.find()  
  3. >   

Then import the contents of the students.dat file exported above

  1. [root@localhost mongodb]# ./bin/mongoimport -d test -c students students.dat   
  2. connected to: 127.0.0.1  
  3. imported 9 objects  
  4. [root@localhost mongodb]#   

Description of parameters:

- d: Specify the database name, in this case test

- c: Specify the collection name, in this case students

students.dat: imported file name

Query the data in the students collection

  1. > db.students.find()  
  2. "_id" : ObjectId("5031143350f2481577ea81e5"), "classid" : 1, "age" : 20, "name" : "kobe" }  
  3. "_id" : ObjectId("5031144a50f2481577ea81e6"), "classid" : 1, "age" : 23, "name" : "nash" }  
  4. "_id" : ObjectId("5031145a50f2481577ea81e7"), "classid" : 2, "age" : 18, "name" : "james" }  
  5. "_id" : ObjectId("5031146a50f2481577ea81e8"), "classid" : 2, "age" : 19, "name" : "wade" }  
  6. "_id" : ObjectId("5031147450f2481577ea81e9"), "classid" : 2, "age" : 19, "name" : "bosh" }  
  7. "_id" : ObjectId("5031148650f2481577ea81ea"), "classid" : 2, "age" : 25, "name" : "allen" }  
  8. "_id" : ObjectId("5031149b50f2481577ea81eb"), "classid" : 1, "age" : 19, "name" : "howard" }  
  9. "_id" : ObjectId("503114a750f2481577ea81ec"), "classid" : 1, "age" : 22, "name" : "paul" }  
  10. "_id" : ObjectId("503114cd50f2481577ea81ed"), "classid" : 2, "age" : 24, "name" : "shane" }  
  11. >   

Demonstrate the success of data import

The above demonstrates the contents of the file imported in JSON format. If you want to import the contents of the CSV format file, you need to specify the import format through the -- type parameter, as follows:

Delete data first

  1. > db.students.remove()  
  2. > db.students.find()  
  3. >   

Import the students_csv.dat file exported before

  1. [root@localhost mongodb]# ./bin/mongoimport -d test -c students --type csv --headerline --file students_csv.dat   
  2. connected to: 127.0.0.1  
  3. imported 10 objects  
  4. [root@localhost mongodb]#   

Description of parameters:

- type: Specifies the file format to be imported

- headerline: Specifies that the first row is a column name and does not need to be imported

- file: Specifies the file to be imported

Query the students collection to verify that the import was successful:

  1. > db.students.find()  
  2. "_id" : ObjectId("503266029355c632cd118ad8"), "classid" : 1, "name" : "kobe""age" : 20 }  
  3. "_id" : ObjectId("503266029355c632cd118ad9"), "classid" : 1, "name" : "nash""age" : 23 }  
  4. "_id" : ObjectId("503266029355c632cd118ada"), "classid" : 2, "name" : "james""age" : 18 }  
  5. "_id" : ObjectId("503266029355c632cd118adb"), "classid" : 2, "name" : "wade""age" : 19 }  
  6. "_id" : ObjectId("503266029355c632cd118adc"), "classid" : 2, "name" : "bosh""age" : 19 }  
  7. "_id" : ObjectId("503266029355c632cd118add"), "classid" : 2, "name" : "allen""age" : 25 }  
  8. "_id" : ObjectId("503266029355c632cd118ade"), "classid" : 1, "name" : "howard""age" : 19 }  
  9. "_id" : ObjectId("503266029355c632cd118adf"), "classid" : 1, "name" : "paul""age" : 22 }  
  10. "_id" : ObjectId("503266029355c632cd118ae0"), "classid" : 2, "name" : "shane""age" : 24 }  
  11. >   
Explain that the import has been successful.

Topics: MongoDB Database JSON