新的neo4j版本2.0强制执行UNION cypher查询

时间:2014-02-28 06:50:26

标签: neo4j cypher

由于neo4j 2.0.0中的新变化,我不得不提出这个查询(而不是使用'r ?:'运算符的查询):

start s=node(404374) 
match (s)<-[:SESSION]-(uv:_UrlVisit)
optional match (uv)-[r:REFERRER]->() 
with uv, r where r IS NULL 
return uv 
UNION
start s=node(404374) 
match (s)<-[:SESSION]-(uv:_UrlVisit)-[:REFERRER]->(uvp:_UrlVisit)-[:SESSION]->(s2) 
where ID(s)<>ID(s2) 
return uv;

有没有任何方法可以在没有UNION的情况下一次性写入此查询?

1 个答案:

答案 0 :(得分:1)

基于@jjaderberg的建议,此查询返回正确的结果:

start s=node(404374) 
match (s)<-[:SESSION]-(uv:_UrlVisit)
optional match (uv)-[r:REFERRER]->(:_UrlVisit)-[:SESSION]->(s2) 
with s,uv,r,s2
where r IS NULL OR ID(s)<>ID(s2) return uv;