Вес в отношениях собственности 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) возвращает виртуальные отношения _

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