2013-07-31 2 views
0

Я новичок в Neo4j. У меня есть данные о клиентах и ​​продуктах в Neo4j. Во время загрузки я не установил между ними никаких отношений. Теперь я хочу, чтобы установить связь между ними нравится:Установите связь между узлами в Neo4j

create (Customer1)-[:bought]->(Item1),(Customer1)-[:bought]->(Item2); 

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

start n=node(*) match (n)-[:bought]->(items) where n.NodeName! = "Customer1" return items; 

он говорит 0 строк. Я думаю, что если он успешно установит отношения, он должен дать мне 2 предмета, Item1 & Item2.

Есть идеи?

ответ

3

По-видимому, вы не установили NodeName для своего узла Customer1 в свой запрос на создание. Попробуйте изменить его следующим образом:

create (Customer1 { NodeName:'Customer1' }), (Item1 { NodeName:'Item1' }), (Item2 { NodeName:'Item2' }), (Customer1)-[:bought]->(Item1), (Customer1)-[:bought]->(Item2); 

Тогда ваш второй запрос должен возвращать 2 строки, как вы ожидали.

Обновление: Хорошо, я не понял вопрос правильно. Итак, вы хотите установить связь между уже существующими узлами. Затем попробуйте следующее:

start Customer1=node:node_auto_index(NodeName='Customer1'), Item1=node:node_auto_index(NodeName='Item1'), Item2=node:node_auto_index(NodeName='Item2') 
create (Customer1)-[:bought]->(Item1),(Customer1)-[:bought]->(Item2); 
+0

Правильно .. Но узлы Customer1, Item1, Item2 уже созданы. Теперь я просто хочу установить отношения между ними. –

+0

Хорошо, теперь у меня вопрос. Я обновил свой ответ. –

+0

Perfect ..! Работал. Благодаря! –

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