MongoDBのサブ文書を保存することができますIDを使用することができることを説明します:
Node
{
"value" : "root"
"children" : [ { "value" : "child1", "children" : [ ... ] },
{ "value" : "child2", "children" : [ ... ] } ]
}
しかし、私が使用することをお勧めしません。木構造のサブ文書、またはそれほど複雑なもの。サブ文書は一級市民ではありません。彼らはコレクションアイテムではありません。
たとえば、指定した値のノードをすばやく見つけることができるとします。 value
のインデックスを使用すると、その参照は高速になります。ただし、値がサブ文書にある場合、値はコレクション要素の値ではないため索引付けされません。
Node
{
"_id" : ObjectId("..."),
"parentId" : ObjectId("..."), // or null, for root
}
あなたはそれぞれの要素のIDを取得するために、手動でシリアライズのいくつかを行う必要があるでしょう:
したがって、それは手動でシリアライズを行うと、代わりにidのリストを格納する方が良いでしょう。
ヒント ツリーの枝全体をフェッチしたいとします。代わりに、唯一の直接の親IDを格納し、あなたはすべてのの祖先ではなく、IDS を保存することができます:
"ancestorIds": [id1, id2, id3]