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

ただし、「親機関のドキュメント」のみが返されます。オプションのリレーションシップの概念が間違っていますか? 2 つのクエリを使用する必要がありますか?

ありがとう!

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最初に見つかったものも含まれるため、 に注意してください。また、指定された関係は特定の順序で連鎖しないため、を削除して、添付リンクと許可リンクを多方向にしたことにも言及する必要があります。instdoc>ATTACHED_TO

于 2013-08-09T15:00:29.347 に答える