2016-03-17 8 views
0

Предположим, я хотел объединить новые ребра в мой график между двумя соседними узлами (так что после операции ребра, о которых идет речь, удваиваются, так сказать).py2neo установить новые грани между существующими узлами

У меня есть следующая запись возвращенное 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 новых узлов, потому что, по-видимому Neo не интерпретирует 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