2017-10-10 8 views
1

私の検索結果から、オブジェクトのプロパティを動的に設定する方法は見つけられませんでした。ここでは)Neo4j - Cypher - PropertyがType(r)のように動的であるビルドオブジェクト

は私のサンプルです: Neo4j GraphまたはNeo4j Console

MATCH(p:Person)-[r]->(m:Movie) 
WITH { Person: p.name, 
     Detail: collect(r.roles) 
    } AS Result 
RETURN Result 

を経由して私の目標(まだ動作していません):

MATCH(p:Person)-[r]->(m:Movie) 
WITH { Person: p.name, 
     CASTED_FOR: // --> Only values(r.roles) for relationship "CASTED_FOR" needed here 
     ACTED_IN: // --> Only values(r.roles) for relationship "ACTED_IN" needed here 
    } AS Result 
RETURN Result 

I K今私は、 [r:CASTED_FOR]またはWHERE Type(r)= "CASTED_FOR"ですが、複数のWITHクエリとMATCHクエリを持つのは好きではありません。

は、このクエリは、あなたがやりたいサイファーの list comprehension構文を使用しています

答えて

3

ありがとう:

MATCH (p:Person)-[r]->(:Movie) 
WITH p, COLLECT(r) AS rs 
RETURN { 
    Person: p.name, 
    CASTED_FOR: [x IN rs WHERE TYPE(x) = 'CASTED_FOR' | x.roles], 
    ACTED_IN: [x IN rs WHERE TYPE(x) = 'ACTED_IN' | x.roles] 
} AS Result 
+0

グレート答えは、おかげで – Peter

関連する問題