Забавлявам се с Neo4j и трябва да знам как мога да намеря възли, които имат връзка с всеки от възлите на даден подграф.
Нека обясним това с пример:
(Имам около 15 000 възли в моята база данни)
Сега, предвид подграфа (c1:Thing),(c2:Thing),...(cn:Thing) искам да знам всички възли, които не са нито един от (c1),...,(cn), но те имат връзка с всеки възел на (c1),...,(cn)
С други думи, бих намерил Cj, където съществуват отношенията: (Cj)-[r1]-(c1) . . . (Cj)-[rn]-(cn)
И j не в {1, ...., n}
Вижте това изображение, за да видите пример
Така че по същество искам да СЪПРИЕМА възли като c6, тези, които са свързани с всеки от възлите на подграфа (възли в червено).
ЗАБЕЛЕЖКА: Даденият подграф може да има произволно количество възли (n е променлива).
Първата ми мисъл е:
MATCH (c1:Нещо)-[r1]-(предложи:Нещо), (c2:Нещо)-[r2]-(предложи:Нещо), .... ,(cn:Нещо)-[rn]-(предложи :Thing) WHERE c1.id=1 AND ..... AND cn.id=n AND NOT(suggest.id IN [1, ...., n]) RETURN c1, r1, ...... , cn, rn, предполагам;
Но това наистина е гадно, когато имаме "n", което е голямо число.
Можеш ли да ми помогнеш?
Благодаря и хубав ден!