我剛剛開始與Neo4j,我在folling的情況下掙扎了一下。鑑於以下圖表:Neo4j密碼子返回兒童的所有節點
爲「西奧」,我要回誰也可以管理詞彙表的其他用戶名的列表。作爲父母組的成員,應該爲您提供與您的孩子相同的權限。
例如,對於「theo」,我們應該返回sara和bob,因爲sara是PoleManager的成員,它是ProjectManager組的父項。 Bob是有權管理詞彙表的ProjectManager組的成員。
到目前爲止,我有以下查詢,但它不返回薩拉作爲候選:
MATCH (me:User{name:"theo"})-[:MEMBER_OF]->(g:Group), (g)-[:CAN_MANAGE]->(Asset{name:"Glossaries"}), (users:User)-[:MEMBER_OF]->(g) RETURN me.name AS Me, collect(users.name) AS Users UNION MATCH (me:User{name:"theo"})-[:MEMBER_OF]->(Group)<-[:CHILD_OF*]-(children:Group), (children)-[:CAN_MANAGE]->(Asset{name:"Glossaries"}), (users:User)-[:MEMBER_OF]->(children) RETURN me.name AS Me, collect(users.name) AS Users
我也願意接受更好的想法把這個圖表示。
我錯了'[:CHILD_OF *]'雖然'*'會匹配'0',但它似乎不是:( –
其實,@ InverseFalcon第一個查詢,這是有用的知道「有什麼用戶Theo可以管理詞彙表「不起作用,它只會返回我'[bob]'。任何想法爲什麼? –
是的,我的查詢中存在一個缺陷,我只是修復它,看看它是否適用於您。 – InverseFalcon