需要在MongoDB里存储一个有序的树表
例如
- 1,a
-
- 11,b
- 2,c
-
- 21,d
- 22,e
-
- 221,f
- 23,g
- 3,h
根据MongoDB官方文档
http://docs.mongodb.org/manual/tutorial/model-tree-structures/
里的各种方案,同级的文档是没有顺序的。但是我需要能排序(能体现该文档在本级中的上下位置) 同时需要在同级中移动和插入新数据。
目前我能想到的方案
方案1,将该文档在本级的顺序写到文档内。
问题:
方案2,在上级文档中保存一个下级文档排列顺序的数组
问题:
迷茫2017-04-24 09:14:53
关于树结构,有多种建模方法。你采用了哪一种呢?
如果你的顺序是自然顺序,那么对路径字段建索引就可以得到顺序结果。特别是采用物化路径的方法。如:
{ path: "1a", ...}
{ path: "1a,b", ...}
{ path: "2c", ...}
{ path: "2c,d", ...}
{ path: "2c,e", ...}
{ path: "2c,e,f", ...}
这种方式可以很快的查询到一个节点下所有字节点,并且所有节点可以按照path排序
参见正在翻译的中文文档: http://docs.mongoing.com/manual-zh/tutorial/model-tree-structures-with-materialized-paths.html