Создание нескольких отношений одного и того же типа между двумя узлами в Neo4j с использованием Cypher

#java #rest #neo4j #cypher

#java #остальное #neo4j #cypher

Вопрос:

Возможно ли создать несколько отношений одного и того же типа с разными свойствами между двумя узлами?

Например: для фильма с двойной ролью:

 Actor--acts{charactername : "hank"}--> movie.
 

а также тот же актер, говорит ли другой персонаж в том же фильме, ФРЕД

 Actor-- acts{ charactername: "Fred"}-->Movie
 

.

Есть ли способ сделать это с помощью Cypher? Я использую REST API, Neo4j 2.0.2.

Ответ №1:

Между двумя узлами допускается множество отношений одного и того же типа с разными свойствами или без них.

Этот оператор Cypher создаст отношения acts для всех имен символов, переданных в:

 MATCH (actor:Actor {id:3}),(movie:Movie { id:4})
FOREACH (character IN ['Hank', 'Fred']| 
         CREATE actor-[:acts { charactername:character }]->movie)
 

Комментарии:

1. Спасибо за ответ. На самом деле я ищу что-то динамическое, например, всякий раз, когда пользователь комментирует какое-либо сообщение, между пользователем и сообщением формируется новое «ПРОКОММЕНТИРОВАННОЕ» отношение. Каждое отношение имеет свое собственное свойство в качестве времени публикации. Возможно ли это. Спасибо.

2. Да, просто всякий раз, когда пользователь комментирует, создайте связь между пользователем и сообщением и задайте соответствующие свойства.

3. Спасибо Луанне. Ваши ответы спасли мой день.