2014-10-31 2 views
1

У меня есть 2 узла: Люди и друзья со следующими структурами: люди: p_id; Друзья: p_id, f_idКак построить отношения в Neo4J

Мне нужно построить отношение [: KNOWS] между ними.

Как я могу это сделать? Я новичок в Neo4J.

P.S. Я использую Cypher

+2

Я думаю, вы смущены тем, что такое узел. Узел - это граф, эквивалентный * строке * в реляционном мире, а не эквивалент таблицы. Я имею в виду, что люди и друзья - действительно странные имена для узлов/меток, а 'f_id' выглядит как какой-то внешний ключ. –

ответ

3

Я думаю, что это сделает это за вас. В принципе, вам нужно явно сопоставить оба узла, с которыми вы хотите создать взаимосвязь, а затем создать связь с направлением, которое вы хотите, между двумя указанными узлами.

match (p:People), (f:Friend) 
where p.id = 'xx' and f.id = 'xy' 
create (p)-[:KNOWS]->(f) 

терпения карта - http://neo4j.com/docs/cypher-refcard/current/ - неоценима для меня в работе через хитросплетение шифра.

+0

Спасибо, много! Мне кажется, это работает. – user3306125

+0

Но как я могу сделать это для всех идентификаторов в обоих узлах? – user3306125

+0

вам нужно построить отношения, используя отношения p_id to f_id. Если у вас есть все отношения в csv, вы можете использовать процесс загрузки csv. для их загрузки. что-то вроде этого должно работать ... LOAD CSV WITH HEADERS FROM "file: /// Y: /pid_to_f_id.csv" AS rel MATCH (p: Person {id: rel.p_id}), (f: Friend {id: rel.f_id}) create (p) - [: KNOWS] -> (f) –

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