Рассмотрим запрос, подобный следующему:
MATCH p=(b:label{ID:"M04"})-[r:Edge*2..2]-(d:label{ID:"S02"})
RETURN p LIMIT 10
Позвольте мне назвать промежуточный узел c
.Отношения от b
до промежуточных узлов и до конечного узла d
относятся к одному типу Edge
и имеют свойство EdgeID
.От одного узла к другому существуют различные отношения типа Edge
, каждое из которых имеет свое значение EdgeID
.К следующему узлу есть другие отношения того же типа, и большинство из них имеют то же значение свойства EdgeID
.
Например, график похож на:
(b)-[:Edge{EdgeID:1}]->(c)-[:Edge{EdgeID:1}]->(d)
(b)-[:Edge{EdgeID:2}]->(c)-[:Edge{EdgeID:2}]->(d)
(b)-[:Edge{EdgeID:3}]->(c)-[:Edge{EdgeID:3}]->(d)
....
Запрос возвращает множество отношений от b
до c
, но одно отношение от c
до d
(b)-[:Edge{EdgeID:1}]->(c)-[:Edge{EdgeID:1}]->(d)
(b)-[:Edge{EdgeID:2}]->(c)-[:Edge{EdgeID:1}]->(d)
(b)-[:Edge{EdgeID:3}]->(c)-[:Edge{EdgeID:1}]->(d)
....
Я хочу вернуть пути с отношениями, имеющими одинаковые EdgeID
,Так, например, с помощью LIMIT 1
я хочу вернуть только одну из вышеуказанных строк, например
(b)-[:Edge{EdgeID:123123}]->(c)-[:Edge{EdgeID:123123}]->(d)
(необязательно этот идентификатор)
с помощью LIMIT 2
Я хочу вернуть двеНапример:
(b)-[:Edge{EdgeID:123123}]->(c)-[:Edge{EdgeID:123123}]->(d)
(b)-[:Edge{EdgeID:872346}]->(c)-[:Edge{EdgeID:872346}]->(d)
Как я могу это сделать?