2016-09-06 173 views
0

我想對我的數據庫中的節點和關係上存在的屬性執行檢查。有什麼辦法將它們全部彙總爲實體,然後執行實體檢查,而不是執行三次單獨的檢查?聚合節點和關係

我目前擁有的是:

MATCH (n1)-[r]-(n2) WHERE (myConditions) 
WITH n1, r, n2 
WHERE n1.property=1 AND r.property=1 AND n2.property=1 
RETURN * 

我正在尋找的是這樣的:

MATCH (n1)-[r]-(n2) WHERE (myConditions) 
WITH n1, r, n2 AS entity 
WHERE entity.property=1 
RETURN * 

重要提示:有超過2查詢節點和多個關係。我想彙總所有圖形實體,然後執行一次檢查。順便說一句,如果「聚合」不是這個案件的正確名詞,請隨時糾正我。

回答

2

您可以在路徑中的所有節點和關係上使用謂詞,如all()any(),none()等。您仍然需要分別檢查節點和關係。

MATCH path=(n1)-[r]-(n2) 
WHERE (myConditions) 
WITH path 
WHERE all(n in nodes(path) WHERE n.property = 1) 
AND all(r in relationships(path) WHERE r.property = 1) 
RETURN path