繁体   English   中英

Neo4j:密码查询中的可选关系?

[英]Neo4j: optional relationship in cypher query?

我想我不太了解密码查询中的可选关系。

示例数据可在此处找到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

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

谢谢!

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM