Найдите два узла и создайте отношения между ними (neo4j в python) - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь найти два узла в моей базе данных, а затем создать связь между ними.Я использую пакет neo4j python.Текущий код выглядит так:

from neo4j import GraphDatabase
graphDB_Driver  = GraphDatabase.driver(...) 
db = graphDB_Driver.session()

db.run("MERGE (a:Person {name:'Homer'})")
db.run("MERGE (a:Person {name:'Marge'})")

Эта часть отлично работает.

Теперь, как мне получить два вышеупомянутых узла и создать связь между ними?

db.run("MERGE (:Person {name:'Homer'})-[:married_to]->(:Person {name:'Marge'})")

Это в конечном итоге создает еще два узла, а затем соединяет их.Есть ли способ получить исходные два узла, чтобы соединить их?

1 Ответ

0 голосов
/ 25 сентября 2019

Да, сначала сопоставьте узлы, а затем СЛИВИТЕ связь между ними

MATCH (homer:Person {name:'Homer'}), (marge:Person {name:'Marge'})
MERGE (homer)-[:married_to]-(marge)

Вам понадобится индекс: Person (имя), чтобы начальные поиски были быстрыми.

У нас есть статья базы знаний по пониманию того, как работает MERGE , которая поможет вам лучше понять некоторые из более тонких моментов предложения MERGE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...