0
我有這樣的節點。我想要得到沒有映射到節點(l1)的所有節點(從c1到c5),所以我的結果節點應該是(c2),(c4)和(c5)。如何在Neo4j中查詢。如何獲得neo4j中排除的節點數
我有這樣的節點。我想要得到沒有映射到節點(l1)的所有節點(從c1到c5),所以我的結果節點應該是(c2),(c4)和(c5)。如何在Neo4j中查詢。如何獲得neo4j中排除的節點數
你需要選擇這些節點從其中沒有單向路徑爲所需的節點:
MATCH (E {name: 'l1'}) WITH E
MATCH (M) WHERE NOT (M)-[*]->(E)
RETURN M
甲幼稚的解決辦法是(C,L是節點標籤R1是關係型)
MATCH (c:C)
WHERE NOT((c)-[:R1]->(l:L {...})
RETURN c
其中(l:L {...})
是用於識別節點l1的一些過濾器。
如果來自C節點的關係數量過多,會變慢。您可以嘗試以下方法:
MATCH (l:L {...})<-[:R1]-(c:C)
WITH COLLECT(c) AS cs
MATCH (c2:C)
WHERE NOT c2 NOT cs
RETURN c2
您應該根據您的數據在兩者之間進行選擇。
c節點是否都是同一個標籤?如果是這樣,你是否在尋找該標籤中沒有鏈接到l1的所有節點,或者僅僅是這個特定的子集? – InverseFalcon
另外,你能否提供你的數據的文本表示?從你的繪圖看,看起來可能有2個「l1」節點。也不清楚你在最右邊的節點上寫的是什麼。 – cybersam