0

私は次のような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 に移行したいと考えています。mongodb の埋め込みコレクションにデータベースを移行するために mongify を使用しています。私はそれで問題はありませんでした。しかし、私は次のことをしたい: 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",
.....},
......
4

1 に答える 1

1

MongoDB の構造は、MySql と比較すると見栄えがします。しかし、このような情報を保持している場合、データの読み取りでループを実行する必要があります。データ サイズが大きくなると、このループによってアプリケーションの速度が低下します。

たとえば、「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...
于 2013-02-14T12:30:48.327 に答える