mongodbのmongoexportとmongoimportの紹介


環境:mongodb 3.6.16バイナリインストール
一、mongoexportパラメータと文法の紹介:
Mongodbのmongoexportツールでは、collectionをJSON形式またはCSV形式のファイルにエクスポートできます.パラメータでエクスポートされたデータ項目を指定したり、指定した条件に基づいてデータをエクスポートしたりできます.
mongoexport-h IP--portポート-uユーザー名-pパスワード-dデータベース-cテーブル名-fフィールド-q条件エクスポート--csv-oファイル名
-hデータベースホストのIP-uデータベースのユーザー名を示す-pデータベースのパスワードを示す-dデータベースの名前を示す-c collectionの名前を示す-fそれらの列をカンマで分割することを示す-f uid,name,ageエクスポートuid,name,ageの3つのフィールド-oエクスポートするファイル名を示す-qエクスポートデータのフィルタ条件を示す-q'{"uid":"100"}'uidが100のデータをエクスポート--type指定ファイルタイプ--authenticationDatabase検証データの名前
テーブル全体のデータをエクスポートするには、次の手順に従います.
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu  -o ./1.dat
2020-01-05T11:54:48.956+0800    connected to: 127.0.0.1:6068
2020-01-05T11:54:48.956+0800    exported 3 records

[root@localhost ~]# cat 1.dat 
{"_id":{"$oid":"5e0f162d1083b09e85237cb4"},"name":"  ","  ":"   ","  ":" ","  ":"  "}
{"_id":{"$oid":"5e0f161d1083b09e85237cb3"},"name":"  ","  ":"   ","  ":" ","  ":"  "}
{"_id":{"$oid":"5e0f16191083b09e85237cb2"},"name":"  ","  ":"   ","  ":" ","  ":"  "}

テーブル指定フィールドのデータをエクスポートするには、次の手順に従います.
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu -f name,'  ','  ' -o ./2.dat
2020-01-05T11:55:41.187+0800    connected to: 127.0.0.1:6068
2020-01-05T11:55:41.187+0800    exported 3 records
[root@localhost ~]# cat 2.dat 
{"_id":{"$oid":"5e0f162d1083b09e85237cb4"},"name":"  ","  ":"   ","  ":" "}
{"_id":{"$oid":"5e0f161d1083b09e85237cb3"},"name":"  ","  ":"   ","  ":" "}
{"_id":{"$oid":"5e0f16191083b09e85237cb2"},"name":"  ","  ":"   ","  ":" "}

テーブル指定フィールドのcsv形式データをエクスポートするには、次の手順に従います.
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu --type csv -f name,'  ' -o ./3.csv
[root@localhost ~]# cat 3.csv 
name,  
  ,   
  ,   
  ,   
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu --csv -f name,'  ' -o ./1.csv
2020-01-05T11:58:56.598+0800    csv flag is deprecated; please use --type=csv instead
2020-01-05T11:58:56.599+0800    connected to: 127.0.0.1:6068
2020-01-05T11:58:56.600+0800    exported 3 records
[root@localhost ~]# cat 1.csv 
name,  
  ,   
  ,   
  ,   

json形式のファイルをエクスポートし、デフォルトではjson形式のデータファイルをエクスポートします.
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c mumu --type json -f name,'  ' -o ./2.json
2020-01-05T12:01:28.951+0800    connected to: 127.0.0.1:6068
2020-01-05T12:01:28.951+0800    exported 3 records
[root@localhost ~]# cat 2.json 
{"_id":{"$oid":"5e0f162d1083b09e85237cb4"},"name":"  ","  ":"   "}
{"_id":{"$oid":"5e0f161d1083b09e85237cb3"},"name":"  ","  ":"   "}
{"_id":{"$oid":"5e0f16191083b09e85237cb2"},"name":"  ","  ":"   "}

条件に基づいてデータをエクスポート:趣味の球技の記録数:
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c chenji -q '{"  ":"  "}' -o ./daqiu.json
2020-01-05T12:10:21.788+0800    connected to: 127.0.0.1:6068
2020-01-05T12:10:21.788+0800    exported 2 records
[root@localhost ~]# cat daqiu.json 
{"_id":{"$oid":"5e1160a3ef45ab936b74982a"},"name":"  ","  ":"   ","  ":" ","  ":"  "}
{"_id":{"$oid":"5e116102ef45ab936b74982d"},"name":"  ","  ":"   ","  ":" ","  ":"  "}

二、mongoimport文法とパラメータの紹介:
Mongodbのmongoimportツールでは、特定のフォーマットファイルの内容を指定したcollectionにインポートできます.このツールはJSON形式のデータをインポートすることも、CSV形式のデータをインポートすることもできます.
パラメータ紹介:-hデータベースホストのIP-uはデータベースのユーザー名を示す-pはデータベースのパスワードを示す-dはデータベースの名前を示す-cはcollectionの名前を示す-fはそれらの列をエクスポートする-oはエクスポートするファイル名を示す-qはエクスポートデータのフィルタ条件を示す--drop挿入前に元の--headerlineは最初の行が列名であることを示す.インポートする必要はありません.-j同時実行の挿入オペランド(デフォルトは1)、並列--authenticationDatabase検証データの名前
データをエクスポートし、テーブルに復元します.データをエクスポートします.
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu   -o ./111.bat
2020-01-05T12:46:21.264+0800    connected to: 127.0.0.1:6068
2020-01-05T12:46:21.265+0800    exported 8 records

表に戻す:
[root@localhost ~]# mongoimport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu --drop ./111.bat
2020-01-05T12:50:07.154+0800    connected to: 127.0.0.1:6068
2020-01-05T12:50:07.154+0800    dropping: dbtest002.fenshu
2020-01-05T12:50:07.181+0800    imported 7 documents

一部のフィールドのテーブルデータのインポート:フィールドのエクスポートを指定します.
[root@localhost ~]# mongoexport -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu --type json -f name,'  ' -o ./222.bat
2020-01-05T12:57:16.030+0800    connected to: 127.0.0.1:6068
2020-01-05T12:57:16.030+0800    exported 7 records

フィールドを指定してテーブルをインポートするときにプライマリ・キーの競合を回避するため、パラメータ--dropを追加します.
[root@localhost ~]# mongoimport   -h 127.0.0.1:6068 -u root -p TdLLQ6689 --authenticationDatabase admin -d dbtest002 -c fenshu  --upsertFields name,'  ' --drop ./222.bat 
2020-01-05T12:58:22.422+0800    connected to: 127.0.0.1:6068
2020-01-05T12:58:22.428+0800    imported 7 documents