2013-08-22 106 views
0

我有一個關於如何在MongoDB中設計祖先樹的問題。有祖先陣列的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/

回答

1

我覺得沒有辦法對付你的情況,除非你不使用「_id」作爲獨特的樹節點,您可以考慮這個模式:

{ "_id" : ["unique guid":xxx, "tree node": "users"], "ancestors" : [ ], "parent" : null } 
{ "_id" : ["unique guid":xxx, "tree node": "users"], "ancestors" : [ "ACL" ], "parent" : "ACL" }