0

我想我不太明白可选关系在密码查询中是如何工作的。

样本数据可以在这里找到http://console.neo4j.org/?id=qnyvxb

My insitution-[:PERMISSION]->My institution document
Other insitution-[:PERMISSION]->Other institution document
Parent institution document-[:PERMISSION]->Parent institution document
My Institution-[:ATTACHED_TO]->Parent institution<-[:ATTACHED_TO]-[Other institution
Super user-[:MEMBER_OF]->My Institution

我需要获取超级用户可以访问的文档。我使用的查询:

START member=node(7) 
MATCH (member)-[m:MEMBER_OF]->()-[?:ATTACHED_TO*..5]->()-[p:PERMISSION]->(documents) 
RETURN documents.name

但它只返回“父机构文件”。我是不是把可选的关系概念弄错了?我应该使用两个查询吗?

谢谢!

4

1 回答 1

0

你不需要可选的关系来解决这个问题。尝试:

CYPHER 1.9  START member=node(7) 
MATCH member-[:MEMBER_OF]->inst-[:ATTACHED_TO*0..5]-otherinst-[:PERMISSION]->doc 
RETURN doc.name

请注意,0..5因为这包括在inst查找时也从成员中找到的第一个doc。我还应该提到,我通过删除 使附加和权限链接多向>,因为您给定的ATTACHED_TO关系不会以任何特定顺序链接。

于 2013-08-09T15:00:29.347 回答