2014-09-09 5 views
1

Comment créer une relation entre plusieurs nœuds en utilisant un chiffrement.neo4j Cypher Créer une relation en utilisant des propriétés

Je objet

A: {id: 123, replyto: '', msg: "Bonjour à tous Son Adam ici"} B: {id: 32132, replyto: 123, msg: "Salut ! Adam Im Steve "} C {id: 4322, replyto: 123, msg:" Bonjour Ana ici "}

D: {id: 111, replyto: '', msg:" Salut "} E : {id: 222, replyto: 111, msg: "Salut"} F {id: 3333, répondto: 222, msg: "Ici"}

Je souhaite créer une relation "IS_A_REPLY" à partir des nœuds B et C au noeud A ... comment puis-je réaliser cela pour multip les nœuds? C'est sans avoir à le déclarer explicitement, puisque c'est plus de mille nœuds.

Dans psudocode

pour allnode if (nodA.id == nodeB.replyto) puis créer relation

Répondre

2

Je pense que cela dépendra un peu sur la nature de ce champ id que vous avez dans vos noeuds là-bas, mais soit:

MATCH (msg:Message) 
WHERE msg.replyTo IS NOT NULL 
MATCH (origin:Message{id:msg.id} 
CREATE msg-[:IS_A_REPLY]->origin 

Ou:

MATCH (msg:Message), (origin:Message) 
WHERE msg.replyTo IS NOT NULL AND ID(origin)= msg.replyTo 
CREATE msg-[:IS_A_REPLY]->origin 
+0

le champ id est juste un nombre – Astronaut

+0

Il importe que ce soit l'identifiant Neo interne, ou que ce soit un champ que vous avez appelé id. Si ce sont vos données, utilisez le premier exemple. Si c'est l'identifiant interne, utilisez le second. – JohnMark13

+0

Semble fonctionner. Merci! – Astronaut

Questions connexes