Cypher查询关系何时不存在

时间:2015-08-17 16:03:11

标签: neo4j cypher

我有这样的模式。一个人可以访问一个属性(v:Visit {type:'introduction'}),访问可以有不同的类型,例如库存检查检查 ....

访问具有按(v:Visit)-[r:NEXT]->(vn:Visit)关系描述的年表。在访问时,此人可能会建议安排另一次访问(可能会或可能不会预订)(v:Visit)-[r:RECOMMEDED]->(i:Inspection)

我的问题是,是否有可能对Cypher查询进行整形以查找访问节点,这些节点具有[r:RECOMMEDED]->(i:Inspection)模式,其中{type: 'inspection'}访问[:NEXT]的范围为MATCH (v:Visit)-[r:RECOMMENDED]->(i:Inspection) WITH v MATCH (v)-[n:NEXT*1..2]->(vis:Visit) WHERE NOT((v)-[n]->(vis:Visit {type:'Inspection'})) RETURN v LIMIT 10 $data = array( "i0" => "item 0", "i1" => "item 1", "i2" => "item 2", "i3" => "item 3", "i4" => "item 4", "i5" => "item 5" ); foreach($data as $id=>$capt); { echo $id.": ".$capt."<br>"; } 啤酒花?

我有这个,但我有一个问题,它会返回一系列关系。

Hex: 3f e2  da  2f 8b  de  c5  f4
Dec: 63 226 218 47 139 222 197 244

1 个答案:

答案 0 :(得分:1)

你可能想尝试OPTIONAL MATCH,你坚持要的是null,就像这样:

MATCH (v:Visit)-[r:RECOMMENDED]->(i:Inspection)
OPTIONAL MATCH (v)-[n:NEXT*1..2]->(vis:Visit)
WHERE vis is null
RETURN v
LIMIT 10

使用OPTIONAL MATCH可以查找可能存在或不存在的模式。 WHERE vis is null坚持认为它不存在。这样就可以证明那些Visit项目没有其他下游Visit节点。