有沒有辦法找到所有未連接的指定類型的節點?找到所有具有特定標籤的節點未連接
可以說我有節點標籤如:UserOrder和:OrderPayment。付費訂單通常連接如下:(user:UserOrder)-[r:PROCESSED {date:xxxxx}]->(order:OrderPayment)
在假設情況下,在某些情況下,由於某些錯誤,付款不是流程,因此不會與訂單相關聯。我如何查找所有未連接的UsersOrders和OrderPayments?
有沒有辦法找到所有未連接的指定類型的節點?找到所有具有特定標籤的節點未連接
可以說我有節點標籤如:UserOrder和:OrderPayment。付費訂單通常連接如下:(user:UserOrder)-[r:PROCESSED {date:xxxxx}]->(order:OrderPayment)
在假設情況下,在某些情況下,由於某些錯誤,付款不是流程,因此不會與訂單相關聯。我如何查找所有未連接的UsersOrders和OrderPayments?
不知道這是最快的方法:
MATCH n
WHERE (n:UsersOrder OR n:OrderPayment) AND NOT (n)--()
RETURN n;
您可以在缺少WHERE
子句中關係的過濾。如果你想排除有任何關係UserOrder節點任何你可以做
MATCH (user:UserOrder)
WHERE NOT (user)--()
RETURN user
它的方便在一個查詢都做,但是這意味着你不會被自己的標籤獲得的節點,但必須先綁定所有節點,然後測試標籤,這可能很昂貴。 – jjaderberg
@jjaderberg表示同意,使得兩個單獨的查詢可能會快很多 – robertklep