1.Ваш график
Для простоты возможных дальнейших ответов и решений я отмечу мое утверждение создания графика:
CREATE
(a:NodeA {name: 'A'})-[:RelationType1]->(b:NodeB {name: 'B'}),
(a)-[:RelationType2]->(b),
(a)-[:RelationType1]->(c:NodeC {name: 'C'}),
(b)-[:RelationType1]->(c),
(b)-[:RelationType2]->(c);
2.Визуализация вхождений
2.1 Решение
MATCH
(startNode)-[:RelationType1]-(endNode)-[:RelationType2]-(startNode)
WHERE
id(startNode) < id(endNode)
RETURN
startNode.name AS startNodeName, endNode.name AS endNodeName;
Сравнение id
в предложении WHERE
строки 4 позволяет избежать наличия двух отношений на пару (по одному в каждом направлении) и предотвращает создание отношенияот узлов к себе.
2.2 Результаты
╒═══════════════╤═════════════╕
│"startNodeName"│"endNodeName"│
╞═══════════════╪═════════════╡
│"A" │"B" │
├───────────────┼─────────────┤
│"B" │"C" │
└───────────────┴─────────────┘
3.Количество вхождений
3.1 Решение
MATCH
(startNode)-[:RelationType1]-(endNode)-[:RelationType2]-(startNode)
WHERE
id(startNode) < id(endNode)
RETURN
count(startNode) AS amount;
3.2 Результат
╒════════╕
│"amount"│
╞════════╡
│2 │
└────────┘