2016-06-16 9 views
0

Ich habe zwei Knoten zwei Personen vertreten:Beziehungen erstellen, basierend auf Feldwerten in Neo4j

(:Person {name:"John Smith"}) 
(:Person {name:"Jane Doe"}) 

Dann habe ich einen dritten Knoten einen Artikel Koautor von diesen beiden Personen vertreten:

(:Article {title:"Some_article"}, {Coauthor:["John Smith", "Jane Doe"]}) 

Meine Frage is: Kann ich eine Beziehung zwischen diesen Knoten basierend auf dem Abgleich der Namen erstellen? Beispiel:

MATCH (n1:Person {name:"Jane Doe"}) 
MATCH (n2:Article{Coauthor:"Jane Doe"}) 
CREATE (n2)-[:AUTHORED_BY]->(n1) 

Ist dies möglich oder muss ich das Array in separate Knoten Eigenschaften z. Coautor_1, Coauthor_2 usw.?

Dank

Neo4j CE 3.0.1 auf 10 Windows-

Antwort

1

Sie eine Schleife für die Erstellung von Urheberschaft Beziehungen verwenden können:

MATCH (a:Article {title:"some title"}) 
UNWIND a.Coauthor as author 
MERGE (p:Person {name: author}) 
MERGE (a)-[:AUTHORED_BY]->(p) 
+0

Das war perfekt, danke. Ich glaube nicht, dass ich jemals eine Frage so schnell beantwortet bekommen habe! – Matt