2016-01-17 47 views
3

讓我們假設以下情況。我們有與Person節點和Knows關係的數據庫。找到相互認識的人是微不足道的,但是如何編寫返回所有特定人不知道的人的查詢?我能想到的它的唯一途徑是:找到沒有特別關係的節點

match (n), (m) where not (n)-->(m) and n.id = 1 return n,m; 

此查詢的明顯缺點是笛卡爾積,因此有大量的數據,該查詢將非常緩慢。但是還有其他解決方案嗎?我嘗試了OPTIONAL MATCH,但它沒有解決,因爲當r是null時沒有m節點。

回答

1

它在技術上是一個笛卡兒的產品,但因爲一旦錨定到一個單獨的節點真的搜索空間就在m。你有沒有嘗試基準查詢?

另外,我想知道這個嘗試:

MATCH (m) WHERE NOT (n {id: 1})-->(m) 
RETURN n,m; 
相關問題