我们知道MongoDB有两种建模关系/实体之间的方式,即嵌入式(embedding)和引用(referencing) (这里查看区别)。假设我们有一个名为
USER
的数据库,在MySQL中有两个表名分别为user
和address
。一个嵌入式的MongoDB文档可能如下所示:{
"_id": 1,
"name": "Ashley Peacock",
"addresses": [
{
"address_line_1": "10 Downing Street",
"address_line_2": "Westminster",
"city": "London",
"postal_code": "SW1A 2AA"
},
{
"address_line_1": "221B Baker Street",
"address_line_2": "Marylebone",
"city": "London",
"postal_code": "NW1 6XE"
}
]
}
在引用关系中,2个SQL表将会在MongoDB中生成2个集合,可以使用此方法和pymongo
进行迁移。
如何使用Python直接将MySQL数据作为嵌入式文档进行迁移?
有关伪代码和算法性能的见解将非常有用。我想到的是通过在MySQL中执行joins
创建views
。但在这种情况下,我们将无法在父文档中获得子文档的结构。