Привязка переменной пути возвращает повторяющиеся совпадения узлов - почему? - PullRequest
0 голосов
/ 26 сентября 2018
CREATE(:ENTRY {name:"alpha"})-[:REL]->(:ENTRY {name:"beta"})<-[:REL]-(:ENTRY {name:"gamma"})

Теперь давайте попробуем вернуть те же элементы графика, что и путь:

MATCH p=(:ENTRY {name:"alpha"})-[:REL]->(:ENTRY {name:"beta"})<-[:REL]-(:ENTRY {name:"gamma"})
RETURN p

Мы увидим две «беты» в представлении таблицы:

{"name": "beta"},

{"name": "beta"}

Но почему?

1 Ответ

0 голосов
/ 26 сентября 2018

При условии, что вы начали с пустой базы данных, это, вероятно, всего лишь некоторая путаница в отношении того, что отображается в табличном результате при возврате пути.

Вы увидите представление отношений, соединяющих узлыи каждое представление взаимосвязи состоит из 3 частей: начальный узел (согласно порядку пути, необязательный начальный узел относительно направления взаимосвязи), свойства взаимосвязи, затем конечный узел.

это вниз:

данные rel1, данные rel2

, что означает:

начало rel1, реквизиты rel1, конец rel1, начало rel2, реквизиты rel2, конец rel2

, что означает:

реквизиты альфа-узла, реквизиты rel1, реквизиты бета-узла, реквизиты бета-узла, реквизиты rel2, реквизиты гамма-узла

Свойства отношений в вашем шаблоне пусты, что объясняет пустые карты.Обратите внимание, что для цепочки отношений узел в конце предыдущего отношения является тем же узлом в начале следующего отношения.Вот почему вы видите, что бета-версия появляется дважды:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...