尝试从[OCI] MongoDB客户端连接到自主JSON数据库(mongoexport/mongoimport部分)
首先
我在这篇文章中确认了可以通过MongoDB Shell连接到自主JSON数据库,并进行与MongoDB相同的操作。
我进行了一项测试,以验证MongoDB的数据迁移工具mongoexport / mongoimport是否可用于Autonomous JSON Database。
使用mongoexport从MongoDB导出
首先,使用mongoexport从MongoDB导出集合dept的内容,以创建用于导入到Autonomous JSON Database的数据。导出文件名为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文件中。
使用mongoimport工具将JSON文件导入到Autonomous JSON数据库中。
我們將以 mongoexport 從 MongoDB 導出的 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连接到自主JSON数据库并进行确认。
[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文件的内容已经正确导入。
使用mongoexport工具从Autonomous JSON数据库导出数据。
使用mongoexport命令将之前导入的集合dept_import的内容导出。
将输出文件命名为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"}
我已确认 Autonomus JSON Database 内的 dept_import 集合已导出到 dept_import.json 文件中。
汇总
经过确认,我们发现 MongoDB 的数据迁移工具 mongoexport/mongoimport 是可以用于 Autonomous JSON Database 的。
请提供相关资料
MongoDB 文档:mongoexport
MongoDB 文档:mongoimport