Все отношения в neo4j являются однонаправленными.Если вам все равно, какое направление используется, MERGE
позволяет вам пропустить направление из шаблона (или даже поставить стрелки в обоих направлениях - что немного странно и вводит в заблуждение), но будет создано только одно отношение(при необходимости) и было бы однонаправлено.Таким образом, флаг bidirectional
совершенно не нужен - вы всегда можете иметь отношения, идущие в одном направлении.
Кроме того, выражение CASE
не может выполнять чтение или запись в БД.
Этот запрос (который даже не нуждается в выражении CASE
) имеет больше смысла и будет работать:
WITH
[
{
sender: 416,
target: 400
},
{
sender: 416,
target: 509
},
{
sender: 416,
target: 413
}
] as relationships
UNWIND relationships as relation
MATCH (s), (t)
WHERE id(s)=relation.sender AND id(t)=relation.target
MERGE (s)-[:REL]->(t)