不相關 - 跳至重要編輯。使用可選匹配的密碼NOT IN查詢
我有以下查詢:
MATCH (n)
WHERE (n:person) AND n.id in ['af97ab48544b'] // id is our system identifier
OPTIONAL MATCH (n)-[r:friend|connected|owner]-(m)
WHERE (m:person OR m:dog OR m:cat)
RETURN n,r,m
該查詢返回所有的人,狗和貓有一個特定的人的關係。我想翻過來接收不包含在此查詢結果中的所有節點&關係。
如果它是SQL這將是
select * from graph where id NOT IN (my_query)
我認爲可選的匹配是有問題的部分。我該怎麼做? 有什麼建議嗎?
謝謝。
- 重要編輯 -
嘿,夥計們,對不起,我的改變的問題,但我的要求已經改變。我需要讓整個圖(所有節點和關係)連接並斷開,除了特定的節點由id。下面的查詢正在工作,但僅適用於單身份證,如果更多的ID不工作。
MATCH (n) WHERE (n:person)
OPTIONAL MATCH (n)-[r:friend|connected|owner]-(m) WHERE (m:person OR m:dog OR m:cat)
WITH n,r,m
MATCH (excludeNode) WHERE excludeNode.id IN ['af97ab48544b']
WITH n,r,m,excludeNode WHERE NOT n.id = excludeNode.id AND (NOT m.id = excludeNode.id OR m is null)
RETURN n,m,r
另外我想簡單查詢:
MATCH (n) WHERE (n:person) AND NOT n.id IN ['af97ab48544b'] return n
但是這一個不返回的關係(記得我需要斷開連接的節點也)。
我怎樣才能得到整個圖排除特定節點?這包括節點和關係,連接節點以及斷開連接。
要澄清,您正在尋找所有連接到您:人的節點:人/:狗/:貓連接:朋友/:連接/:所有者關係?或者你是否想要找到與這些節點之間的這些關係不存在的人?或者您是否試圖在整個圖表中找到所有不包含您的查詢中的任何人員節點(和連接的節點)的節點?什麼是期望輸出的例子? – InverseFalcon
從你的SQL語句和你的問題描述中,我推斷你想找到所有'person','dog','cat'沒有連接到具有'id'的'person'? –
請閱讀我最後的編輯。不幸的是我的要求已經改變。 –