2014-09-09 3 views
1

Как создать связь между несколькими узлами с помощью cypher.neo4j Cypher Создать отношения, используя приличия

У меня есть объект

A: {ID: 123, REPLYTO: '' Сообщ: "Привет всем Его Адам здесь"} B: {ID: 32132, REPLYTO: 123, сообщ: "Привет ! Adam Im Steve "} C {ID: 4322, REPLYTO: 123, MSG:" Здравствуйте! Ana здесь "}

D: {ID: 111, REPLYTO: '', MSG:" Привет "} E : {id: 222, replyto: 111, msg: "Hi"} F {id: 3333, replyto: 222, msg: "Here"}

Так что я хочу создать взаимосвязь «IS_A_REPLY» из узлов B и C к узлу A ... как я могу достичь этого для многократного ли узлы? Это не нужно декларировать это явно, так как это более тысячи узлов.

В psudocode

для allnode если (nodA.id == nodeB.replyto), то создать отношения

ответ

2

Я думаю, что это будет зависеть немного от природы этого поля идентификатор, который вы имеете в ваши узлы есть, но либо:

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

Или:

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

поле id - это всего лишь номер – Astronaut

+0

. Неважно, является ли это внутренним идентификатором Neo, или это поле, которое вы случайно назвали id. Если это ваши данные, используйте первый пример. Если это внутренний идентификатор, используйте вторую. – JohnMark13

+0

Кажется работать. Благодаря! – Astronaut

Смежные вопросы