2016-09-06 123 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