尝试从[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