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

Другие вопросы по тегам