[EDITED]
Не следует использовать шаблон MATCH
, содержащий пару Node
узлов, поскольку это создает много повторяющихся вхождений каждого узла. Кроме того, одна и та же пара будет найдена дважды (в обратном порядке).
Этот запрос, вероятно, будет делать то, что вы хотите:
WITH ["a", "b", "c", "d"] as list
MATCH (n:Node)--(g:Group)
WITH list, g, COLLECT(n) AS ns
WITH g, SIZE(ns) AS groupSize, SIZE([x IN ns WHERE x.name IN list]) AS intersection
WHERE intersection > 0
RETURN g, groupSize, intersection