我不确定集合的限制是什么,但我可以使用 return range (1,100000) as largeCollection 轻松创建 100,000 个。
但是,获取这些节点的更好方法是将集合展开为行,然后在具有这些键的节点上进行匹配:
// better to parameterize this, when you get the chance
WITH [1505697,2406945,2408297,2408531,2410815,2413566,2415224] as equipKeys
MATCH (n:person{key:2529962, ownBy:0})
UNWIND equipKeys as equipKey
MATCH (c:Equipment{key:equipKey})
MATCH path = (n)<-[:relation]-(c)
RETURN distinct EXTRACT (p in NODES(path)| p.key);
编辑
根据您的评论,您似乎只想返回 :Equipment 节点具有指向您的 :person 节点的路径的设备密钥。
您当前使用的 MATCH 将找到所有可能的路径,这将在中型到大型的图表上阻塞,尤其是在具有许多关系的情况下。
您可能希望使用 EXISTS() 函数,如果存在这样的路径,它将返回 true 或 false。也就是说,您可能需要考虑通过给出可能的上限来限制路径。
WITH [1505697,2406945,2408297,2408531,2410815,2413566,2415224] as equipKeys
MATCH (n:person{key:2529962, ownBy:0})
UNWIND equipKeys as equipKey
MATCH (c:Equipment{key:equipKey})
WITH DISTINCT n, c
WHERE EXISTS( (n)<-[:relation*0..10]-(c) )
RETURN c.key