1
1

More than 1 year has passed since last update.

[OCI]MongoDBクライアントからAutonomous JSON Databaseに接続してみた(mongoexport/mongoimport編)

Last updated at Posted at 2022-01-20

はじめに

こちらの記事では、MongoDB ShellからAutonomous JSON Databaseに接続して、MongoDBに対する操作と同様の操作を行えることを確認しました。

今回はMongoDBのデータ移行ツールであるmongoexport/mongoimportが、Autonomous JSON Databaseに対して使用できるかを検証してみました。

1.mongoexportを使用したMongoDBからのエクスポート

まず、Autonomous JSON Databseにインポートするデータを作成するために、mongoexportを使用してMongoDBからコレクションdeptの内容をエクスポートします。
ここではdept.jsonというファイル名で出力します。

[opc@work ~]$ mongoexport --uri='mongodb://admin:Demo%231Demo%231@127.0.0.1:27017/mongo?authSource=admin' --collection=dept --out=dept.json 
2022-01-20T22:16:27.835+0900	connected to: mongodb://[**REDACTED**]@127.0.0.1:27017/mongo?authSource=admin
2022-01-20T22:16:27.845+0900	exported 4 records
[opc@work ~]$

dept.jsonの内容を確認してみます。

[opc@work ~]$ vi dept.json
dept.json
{"_id":{"$oid":"61e7c80d8845e822d33dab38"},"deptno":10,"deptname":"ACCOUNTING","location":"NEW YORK"}
{"_id":{"$oid":"61e7c8128845e822d33dab39"},"deptno":20,"deptname":"RESEARCH","location":"DALLAS"}
{"_id":{"$oid":"61e7c8158845e822d33dab3a"},"deptno":30,"deptname":"SALES","location":"CHICAGO"}
{"_id":{"$oid":"61e7c8198845e822d33dab3b"},"deptno":40,"deptname":"OPERATIONS","location":"BOSTON"}

コレクションdeptの内容がdept.jsonにエクスポートされていることが確認できました。

2.mongoimportを使用したAutonomous JSON Databaseへのインポート

MongoDBからmongoexportでエクスポートしたJSONファイルを、mongoimportでAutonomous JSON Databaseにインポートしてみます。
ここではJSONファイルの内容をコレクションdept_importにインポートします。

[opc@work ~]$ mongoimport --uri='mongodb://mongo:Demo%231Demo%231@XXXXXXXXXX-AJD1.adb.ap-tokyo-1.oraclecloudapps.com:27016/mongo?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false' --collection=dept_import --type=json --file=dept.json --writeConcern {w:0}
2022-01-20T22:38:32.065+0900	connected to: mongodb://[**REDACTED**]@XXXXXXXXXX-AJD1.adb.ap-tokyo-1.oraclecloudapps.com:27016/mongo?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false
2022-01-20T22:38:32.066+0900	done
[opc@work ~]$

無事インポートできたようです。

MongoDB ShellでAutonomous JSON Databaseに接続して、確認してみます。

[opc@work ~]$ mongosh 'mongodb://mongo:Demo%231Demo%231@XXXXXXXXXX-AJD1.adb.ap-tokyo-1.oraclecloudapps.com:27017/mongo?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&loadBalanced=true'
Current Mongosh Log ID:	61e965f33dc9318379a0301c
Connecting to:		mongodb://<credentials>@XXXXXXXXXX-AJD1.adb.ap-tokyo-1.oraclecloudapps.com:27017/mongo?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false&loadBalanced=true
Using MongoDB:		4.2.14
Using Mongosh:		1.1.8

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

mongo>

コレクションの一覧を確認します。

mongo> show collections
dept
dept_import
mongo>

dept_importが作成されていることが確認できました。
コレクションdept_importの内容を確認してみます。

mongo> db.dept_import.find()
[
  {
    _id: ObjectId("61e7c80d8845e822d33dab38"),
    deptno: 10,
    deptname: 'ACCOUNTING',
    location: 'NEW YORK'
  },
  {
    _id: ObjectId("61e7c8128845e822d33dab39"),
    deptno: 20,
    deptname: 'RESEARCH',
    location: 'DALLAS'
  },
  {
    _id: ObjectId("61e7c8158845e822d33dab3a"),
    deptno: 30,
    deptname: 'SALES',
    location: 'CHICAGO'
  },
  {
    _id: ObjectId("61e7c8198845e822d33dab3b"),
    deptno: 40,
    deptname: 'OPERATIONS',
    location: 'BOSTON'
  }
]
mongo>

JSONファイルの内容が正しくインポートされていることが確認できました。

3.mongoexportを使用したAutonomous JSON Databaseからのエクスポート

先ほどインポートしたコレクションdept_importの内容を、mongoexportでエクスポートします。
ここではdept_import.jsonというファイル名で出力します。

[opc@work ~]$ mongoexport --uri='mongodb://mongo:Demo%231Demo%231@XXXXXXXXXX-AJD1.adb.ap-tokyo-1.oraclecloudapps.com:27016/mongo?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false' --collection=dept_import --out=dept_import.json
2022-01-20T23:02:22.094+0900	connected to: mongodb://[**REDACTED**]@XXXXXXXXXX-AJD1.adb.ap-tokyo-1.oraclecloudapps.com:27016/mongo?authMechanism=PLAIN&authSource=$external&ssl=true&retryWrites=false
2022-01-20T23:02:23.095+0900	[........................]  mongo.dept_import  0/4  (0.0%)
2022-01-20T23:02:24.095+0900	[........................]  mongo.dept_import  0/4  (0.0%)
2022-01-20T23:02:25.095+0900	[........................]  mongo.dept_import  0/4  (0.0%)
2022-01-20T23:02:26.095+0900	[........................]  mongo.dept_import  0/4  (0.0%)
2022-01-20T23:02:27.095+0900	[........................]  mongo.dept_import  0/4  (0.0%)
2022-01-20T23:02:28.095+0900	[........................]  mongo.dept_import  0/4  (0.0%)
2022-01-20T23:02:28.677+0900	[########################]  mongo.dept_import  4/4  (100.0%)
2022-01-20T23:02:28.677+0900	exported 4 records
[opc@work ~]$

無事エクスポートできたようです。
dept_import.jsonの内容を確認してみます。

[opc@work ~]$ vi dept_import.json
dept_import.json
{"_id":{"$oid":"61e7c80d8845e822d33dab38"},"deptno":10,"deptname":"ACCOUNTING","location":"NEW YORK"}
{"_id":{"$oid":"61e7c8128845e822d33dab39"},"deptno":20,"deptname":"RESEARCH","location":"DALLAS"}
{"_id":{"$oid":"61e7c8158845e822d33dab3a"},"deptno":30,"deptname":"SALES","location":"CHICAGO"}
{"_id":{"$oid":"61e7c8198845e822d33dab3b"},"deptno":40,"deptname":"OPERATIONS","location":"BOSTON"}

Autonomous JSON Database内のコレクションdept_importの内容がdept_import.jsonにエクスポートされていることが確認できました。

まとめ

MongoDBのデータ移行ツールであるmongoexport/mongoimportが、Autonomous JSON Databaseに対して使用できることが確認できました。

参考情報

MongoDB Documentation : mongoexport
MongoDB Documentation : mongoimport

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1