2014-01-27 21 views
0

我的用戶在我的graphdb中,他們投票給品牌。我有一個案例,我需要找到不投任何品牌的用戶。我準備了一個可以玩的控制檯視圖。在這個控制檯的例子中,我需要以'Trinity'命名節點;可選配對在Neo4j 2.0.0中無法正常工作

Console Example

嘗試可選的比賽沒有運氣。

+2

您是否在尋找一種方法來匹配沒有特定關係的所有節點?就像'MATCH(n:User)WHERE NOT n - [:Voted] - >()...'? – jjaderberg

+0

天啊,真的很簡單嗎?謝謝jjaderberg,這正是我想要的。我嘗試過之前像這樣:'MATCH(n:User)WHERE NOT n - [:Voted] - >(b:Brand)'並且它不起作用。 –

回答

5

帶有可選匹配正確的方法是更麻煩的(但可能更快):

MATCH (n:User) 
OPTIONAL MATCH (n)-[:Voted]->(brand) 
WITH n,brand 
WHERE brand IS NULL 
RETURN n, brand 

作爲WHERE(在SQL join ON (...)等)內部屬於optional match,因此它可以被用來指定約束的可選匹配將堅持。

因此,如果要過濾可選匹配的「結果」,則必須將其與WITH分開。

+0

我無法弄清楚可選與哪裏。當我從查詢中刪除第一個匹配時,它不起作用。如果我刪除'與',再次沒有成功。但它仍然可以找到品牌。這個可選的比賽讓我困惑。你能多解釋一下嗎? –