0
我想最简单的事情将是一个平坦的列表:在MongoDB中存储树数据结构的最有效方法是什么?
{
id: ObjectId()
parentId: ObjectId()
value: ‘foo’,
}
只是一个大集合。要查找节点的子节点,只需搜索列表并查找parentId等于当前节点ID的所有实例。 id/parentId上的索引。
这可能会更快写入,但读取可能会变得非常可怕。 我们将有更多的读取比写入!
MongoDB的具有某种建在树的数据结构: https://docs.mongodb.com/manual/applications/data-models-tree-structures/
但我想知道如何从一个平面列表就像我提出的一个不同。
这不会那么糟糕。但是每次你需要找到一个节点的孩子时,你都必须查看同一个集合并重新读取它。最糟糕的情况我认为是log(n)时间来读取整个事物的索引。 –
@AlexanderMills是的,但是由于树形桶的大小,它们非常快。我更新了我的答案。 – Lucas