将目录层次结构/树存储在键值数据库中的干净/有效方法是什么(在我的情况下是 MongoDB,但其中任何一个)?
例如树形结构
- Cars
+ Audi
+ BMW
- M5
+ Ford
- Color
+ Red
- Apple
- Cherry
+ Purple
- Funny
我现在使用的方法,每个对象都链接到它的父对象
{
dir: "red"
parent-dir: "color"
}
这使得插入和重新排序树的任何方面都非常高效/快速(例如,如果我想将 Red 及其所有子项移动到 Cars 目录)。
但是当我想递归地访问给定目录的所有子目录及其子目录时,这种方法很糟糕。为了提高解析效率,我可以有一个结构,例如
{
dir: "red"
children: "audi, bmw, ford"
}
{
dir: "bmw"
children: "m5"
}
但是如果我想修改树,就需要触摸和修改一大堆对象。
有没有其他方法可以在 KV 存储中存储目录结构?