我有一个关于如何在MongoDB中设计祖先树的问题。
例如,如果我们有这个:
{ "_id" : "ACL", "ancestors" : [ ], "parent" : null }
{ "_id" : "apps", "ancestors" : [ "ACL" ], "parent" : "ACL" }
{ "_id" : "3222", "ancestors" : [ "ACL", "apps" ], "parent" : "apps" }
{ "_id" : "1223", "ancestors" : [ "ACL", "apps" ], "parent" : "apps" }
这意味着我们有一棵这样的树
ACL
|
Apps
/ \
3222 1223
我想在每个节点下都有一个“用户”节点。但是,鉴于_id必须是独一无二的,我不能这样做。
ACL
|
Apps
/ \
3222 1223
/ \
users users
你会如何解决这个问题?
编辑:我在这里阅读了MongoDB上的模型树信息: http://docs.mongodb.org/manual/tutorial/model-tree-structures/
答案 0 :(得分:1)
我认为没有办法处理你的情况,除非你不使用“_id”作为唯一树节点,你可以考虑这个架构:
{ "_id" : ["unique guid":xxx, "tree node": "users"], "ancestors" : [ ], "parent" : null }
{ "_id" : ["unique guid":xxx, "tree node": "users"], "ancestors" : [ "ACL" ], "parent" : "ACL" }