Вес в отношениях собственности Neo4j
Я хочу добавить вес в отношениях собственности. Вес рассчитывается по этому коду:
MATCH (n1)-[r1:NEXT]->(n2)
DELETE r1
RETURN n1, n2, apoc.create.vRelationship(n1, 'WEIGHT', {weight:count(r1)}, n2);
Но "ВЕС" не появляется в свойстве r1. Как это исправить?
2 ответа
Я не работал с apoc
поэтому я отвечаю на ваш вопрос с чистым шифром:
MATCH (n1)-[r1:NEXT]-(n2)
WITH count(r1) as count_rel, n
CREATE (n1)-[:WEIGHT {weight: count_rel}]->(n2)
Если вы удалите отношение r1, это создаст WEIGHT
отношение для каждого NEXT
связь. Для решения этой проблемы вы можете удалить NEXT
Отношение в другом запросе после этого, к сожалению, я не знаю, как объединить эти 2 запроса в один запрос:(. Надеюсь, кто-то поможет улучшить этот ответ:).
Этот метод APOC создает виртуальные отношения — обратите внимание на v в apoc.create. v Отношения
https://neo4j.com/labs/apoc/4.1/overview/apoc.create/apoc.create.vRelationship/apoc.create.vRelationship(nodeFrom,'KNOWS',{key:value,…}, nodeTo) возвращает виртуальные отношения _