我的mysql数据库看起来像这样:
----|-----------|--------|------------|---------|----------|---------|----------|----------|
_id| Segment_ID| Origin | Destination| Aircraft| Latitude1|Latitude2|Longitude1|Longitude2|
----|-----------|--------|------------|---------|----------|---------|----------|----------|
1 | LFAQ-GILTO| LFAQ | KURIS | A3ST | 49.56 | 2.5 | 49.97 | 2.33 |
----|-----------|--------|------------|---------|----------|---------|----------|----------|
1 |GILTO-EVX | LFAQ | KURIS | A3ST | 49.97 | 2.33 | 50.70 | 2.12 |
----|-----------|--------|------------|---------|----------|---------|----------|----------|
1 |EVX-KURIS | LFAQ | KURIS | A3ST | 50.70 | 2.12 | 52.00 | 2.07 |
----|-----------|--------|------------|---------|----------|---------|----------|----------|
我想将我的数据库从mysql迁移到mongodb。我使用mongify在mongodb中的嵌入式集合中迁移我的数据库。我没有遇到任何问题。但是,我想做下一个: 1.迁移到mongodb中的嵌入式集合,并将列作为数组值。 2.我希望我的mongodb系列看起来像这样
Flight: {
id:1 {
"Segment_ID": "LFAQ-GILTO, GILTO-EVX, EVX-KURIS",
"Origin": "LFAQ, LFAQ, LFAQ",
"Destination": "KURIS, KURIS, KURIS",
"Aircraft" : "A3ST, A3ST, A3ST",
"Latitude1" : "49.56, 49.97, 50.70",
etc.....
有什么方法可以让它发挥作用吗?
现在我的数据库看起来像:
Flight: {
id1: {
"0": {
"Segment_ID": "LFAQ-GILTO",
"Origin": "LFAQ",
"Destination": KURIS",
"Aircraft" : "A3ST",
"LAtitude1": "49.56",
.......
},
"1": {
"Segment_ID": "LFAQ-GILTO",
"Origin": "LFAQ",
"Destination": KURIS",
"Aircraft" : "A3ST",
"LAtitude1": "49.56",
.....
},
"2": {
"Segment_ID": "LFAQ-GILTO",
"Origin": "LFAQ",
"Destination": KURIS",
"Aircraft" : "A3ST",
"LAtitude1": "49.56",
.....},
......
答案 0 :(得分:1)
与MySql相比,您的MongoDB结构很好看。但是如果你保留这样的信息,就必须循环读取数据。如果数据大小变大,此循环将减慢您的应用程序。
例如, 您需要“Segment_ID”为“GILTO-EVX”的行,在MongoDB中,您有针对“Segment_ID”数组的循环数据。因为MongoDB返回父键及其所有值,即使单个值与您的条件匹配。在上面的例子中,MongoDB会给你
{ "Segment_ID": ["LFAQ-GILTO", "GILTO-EVX", "EVX-KURIS", ....] } //If you are keep values in array
{ "Segment_ID": "LFAQ-GILTO, GILTO-EVX, EVX-KURIS, ....." } //If you are keep values as string with comma seperated
两者都难以使用进一步的过程。我的意思是你必须在变量中保留更大的数组或更大的字符串。在读取与“Segment_ID = GILTO-EVX”相对应的其他键(列)上的相应信息时,此复合体将增加。 在这里,我的建议是重构您的MongoDB文档,如下所示,
//Doc 1
{
"Flight_id" : 1,
"Segment_ID": "LFAQ-GILTO",
"Origin": "LFAQ",
"Destination": "KURIS",
"Aircraft" : "A3ST",
}
//Doc 2
{
"Flight_id" : 1,
"Segment_ID": "GILTO-EVX",
"Origin": "LFAQ",
"Destination": "KURIS",
"Aircraft" : "A3ST",
}
//Doc3 and more...