我不知道是什麼的限制是收藏,但我可以很容易地創建100,000 return range (1,100000) as largeCollection
。
然而,一個更好的方式來獲得這些節點是集合放鬆入行,然後用這些密鑰匹配的節點上:
// 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);
編輯
從您的評論,看來你只想返回設備密鑰,其中:設備節點具有指向您的個人節點的路徑。
您正在使用的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
感謝它幫助。 – Navneet
在我的使用情況下,我希望結果作爲鍵存在於第n層的路徑中,所以使用上面我的查詢將是: 「WITH [1505697,2406945,2408297,2408531,2410815,2413566,2415224] as裝備鍵 MATCH(n:人{key:2529962,ownBy:0}) UNWIND equipKe as equipKey MATCH(c:Equipment {key:equipKey}) MATCH path =(n)< - [:relation * 0 .. ] - (c) RETURN distinct c.key「 但是,如果節點具有大量關係,則此查詢花費時間。你能否建議任何更好的方法來實現相同的目標。 謝謝 – Navneet