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 数据库查询结果:
英文版