2016-07-14 8 views
0

私はMongoDBの&マングースマングース - マルチレベルのナビゲーション

に新たなんだ私はこのようなデータを持っている:

{ 
    "_id": "5787009e494495e56d327417", 
    "title": "Hahaha", 
    "parent": null, 
    "depth": 0 
}, 
{ 
    "_id": "5787009e494495e56d327416", 
    "title": "Hihihi", 
    "parent": null, 
    "depth": 0 
}, 
{ 
    "_id": "5787009e494495e56d327415", 
    "title": "Huhuhu", 
    "parent": "5787009e494495e56d327417", 
    "depth": 1 
} 

私はこれにデータを変換することができます方法:

{ 
    "_id": "5787009e494495e56d327417", 
    "title": "Hahaha", 
    "children": [ 
    "_id": "5787009e494495e56d327415", 
    "title": "Huhuhu", 
    "children": [] 
    ] 
}, 
{ 
    "_id": "5787009e494495e56d327416", 
    "title": "Hihihi", 
    "children": [] 
} 

を私を助けてください、そして、私の悪い英語のために残念です!

答えて

1

結果をトラバースして新しいデータをメモリに作成する必要はありません。

//for each item in the result { 
    if(item.parent !=null){ 
     insert_item_in_tree(item); 
    } 
//} 

次に、1つのアイテムを親IDごとに適切に挿入するデータ構造体機能を構築します。

+0

ありがとうございました! 'parent' objectIdでオプションを使うべきか、または' children'配列でデータのオプションを使うべきですか? –

+0

親は保存が少ないのでより良いです。変更が容易です。 – enRaiser

+0

しかし、メモリに構築したツリーは、ユースケースの要求に合わせて設計することができます。あなたがそれを好きなら答えを受け入れることを忘れることはありません。 – enRaiser