はじめに
こちらの記事では、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
{"_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
{"_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