簡體   English   中英

查找沒有特定關系的節點(Cypher / neo4j)

[英]Finding nodes that do not have specific relationship (Cypher/neo4j)

我有一個neo4j數據庫,具有以下內容:

a:Foo
b:Bar

大約10%的db有(a)-[:has]->(b)

我只需要獲得那些沒有這種關系的節點!

以前做()-[r?]-()會很完美! 然而,它不再受支持:(而是,正如他們建議的那樣

OPTIONAL MATCH (a:Foo)-[r:has]->(b:Bar) WHERE b is NULL RETURN a

給我一個null結果,因為可選匹配需要BOTH節點在那里或BOTH節點不在那里......

那么我怎么得到所有的a:Foo沒有附加到b:Bar a:Foo節點?

注意:數據集是數百萬個節點,因此查詢需要高效或以其他方式超時。

那就是

MATCH (a:Foo) WHERE not ((a)-[:has]->(:Bar)) RETURN a;

如果您正在尋找所有單身人士/孤兒,這也有效:

MATCH (a:Foo) WHERE not ((a)--()) RETURN a;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM