我对 Neo4j 很感兴趣,我需要知道如何找到与给定子图的每个节点都有关系的节点。
让我们用一个例子来解释一下:
(我的数据库中有大约 15000 个节点)
现在,给定子图 (c1:Thing),(c2:Thing),...(cn:Thing) 我想知道所有不是 (c1),...,(cn) 但它们与 (c1),...,(cn) 的每个节点都有关系
换句话说,我会在关系存在的地方找到 Cj: (Cj)-[r1]-(c1) 。. . (Cj)-[rn]-(cn)
而 j 不在 {1, ...., n}
所以基本上我想匹配像 c6 这样的节点,那些与子图的每个节点(红色节点)连接的节点。
注意:给定的子图可以有任意数量的节点(n 是可变的)。
我的第一个想法是:
MATCH (c1:Thing)-[r1]-(suggest:Thing), (c2:Thing)-[r2]-(suggest:Thing), .... ,(cn:Thing)-[rn]-(suggest :Thing) WHERE c1.id=1 AND ..... AND cn.id=n AND NOT(suggest.id IN [1, ...., n]) RETURN c1, r1, ...... , cn, rn, 建议;
但是当我们有一个很大的“n”时,这真的很糟糕。
你可以帮帮我吗?
感谢,并有一个愉快的一天!