MongoDB 嵌套子文档导入数据库
MongoDB的嵌套子文档通过一对多关系,灵活的多字段记录了不同属性。如有集合 users, 其子文档friends下有字段 name, tel,希望数据结构化后导入 mysql 数据库。具体数据如下:
| {"_id" : ObjectId("5f57421c1796b4875dc90187"), "name" : "jim", "friends" : [ {"name":"tom", "tel":"186123500500"}, {"name":"jack", "tel":"181123500511"}, {"name":"luke", "tel":"138123500522"}, {"name":"rose","tel":"189123500533"} ]}, |
{"_id" : ObjectId("5f57421c1796b4875dc90188"), "name" : "jack", "friends" : [ {"name":"james", "tel":"186123500544"}, {"name":"sam", "tel":"186123500555"}, {"name":"peter", "tel":"186123500566"} ]} … |
实现步骤:
1、确定 mysql 数据库下有对应的用户表user,对应字段为:name, friend, tel。
2、 在集算器中编写脚本user.dfx:
| A | B | |
| 1 | =mongo_open("mongodb://localhost:27017/local") | / 连接 MongDB 数据库 |
| 2 | =mongo_shell(A1,"user.find(,{_id:0})") | / 获取集合 user 数据 |
| 3 | =A2.news(friends; name:friend, tel, A2.name) | / 将数据结构化 |
| 4 | =connect("mysql") | / 连接 MySql 数据库 |
| 5 | >A4.update@i(A3, user) | / 将数据导入 mysql 数据库下的 user 表 |
| 6 | >(A1.close(), A4.close()) | / 关闭连接 |
| A3 | friend | tel | name |
| tom | 186123500500 | jim | |
| jack | 181123500511 | jim | |
| luke | 138123500522 | jim | |
| … | … | … |
4、执行脚本后,在 mysql 数据库查询结果:


英文版