2016-04-18 7 views
0

Я пытаюсь запустить код на this GraphGist, чтобы сыграть с семейным дном Buendia в Neo4j.Отношения не применяются должным образом между узлами в Neo4j

Когда я создаю два узла и попытаться соединить их отношения, как таковой:

CREATE (JoseArcadioBuendia:Male {name:'Jose Arcadio Buendia',Gender:'Male'}) 

затем

CREATE (UrsulaIguaran:Female {name:'Ursula Iguaran',Gender:'Female'}) 

затем

CREATE (JoseArcadioBuendia)-[:HUSBAND]->(UrsulaIguaran) 

я получаю это:

enter image description here

Почему именно этот код неверный? Синтаксис выглядит отлично и, похоже, работает для автора Gist. Я что-то делаю неправильно?

+0

запрос работает для меня. Я просто копировал пасту и запускал ее. он работает .. – BDR

+0

да, cybersam очистил его - идентификаторы существуют только для жизни одного запроса. Я сделал запись по строчке. –

+0

Получил это. Мне было интересно – BDR

ответ

2

Я предполагаю, что вы не включили все 3 CREATE положения в одном запросе.

Идентификаторы Cypher (например, JoseArcadioBuendia и UrsulaIguaran) существуют только для жизни одного запроса. БД не сохраняет эти идентификаторы. Итак, если у вас есть запрос, содержащий только CREATE (JoseArcadioBuendia)-[:HUSBAND]->(UrsulaIguaran)), neo4j не будет знать, что узлы уже существуют и поэтому создадут для вас 2 новых узла (а также связь).

Если вы поставили все 3 предложения в одном запросе, вы бы увидели ожидаемые результаты. В противном случае ваш запрос сначала должен был бы использовать MATCH, чтобы связать эти идентификаторы с соответствующими узлами (как и с ответом @ Bond).

+0

ах! Я вижу! Поэтому я думаю, вы могли бы сказать, что проблема в конечном итоге сводится ко мне с использованием веб-интерфейса, а не терминала. –

+1

На самом деле вы можете использовать запросы с несколькими предложениями в браузере neo4j. – cybersam

0

Третья строка неверна. Вы не указываете какие-либо узлы. Попробуйте следующее:

MATCH (a:Male), (b:Female) 
WHERE a.name = 'Jose Arcadio Buendia' AND b.name = 'Ursula Iguaran' 
CREATE (a)-[:HUSBAND]->(b); 
+0

Я получаю 'Один тип отношения должен быть указан для CREATE (строка 3, столбец 11 (смещение: 104))' –

+0

Я отредактировал ответ @ Bond, чтобы сделать тип отношения «HUSBAND» (добавив «: «префикс») и исправить имя Ursala. – cybersam

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

  • Нет связанных вопросов^_^