py2neo устанавливает новые ребра между существующими узлами
Допустим, я хотел объединить новые ребра в моем графе между 2 смежными узлами (чтобы после операции рассматриваемые ребра удваивались, так сказать).
У меня есть следующая запись, возвращенная graph.cypher.execute(<some query>)
:
| p
---+----------------------------
1 | (:A)-[:r]->(:B)-[:r]->(:C)
Теперь я хотел бы удвоить края (A,B) и (B,C). Для этого я написал этот код:
for record in graph.cypher.execute(<some query>):
for rel in record[0]:
self.graph.cypher.execute("MERGE "+str(self.graph.node(rel.start_node.ref))+"-[:new]->"+str(self.graph.node(rel.end_node.ref)))
Тем не менее, я не получаю новые ребра между существующими узлами, но два новых отношения в общей сложности 4 новых узлов, потому что, очевидно, NEO4J не интерпретирует str(self.graph.node(rel.start_node.ref))
а также str(self.graph.node(rel.end_node.ref))
как ссылаясь на существующие узлы в графе. Как я могу исправить это?
1 ответ
self.graph.create(rel(r.start_node, "new", r.end_node))
Является ли.
потребности from py2neo import rel