我注意到了,match(a:Vegetable{name:'Cellery'}) return a并match(a:Vegetable) where a.name='Cellery' return a得到了相同的结果。
两者之间是否有实际区别?当您知道属性值时,第一种形式似乎可以很好地工作,但是是否可以使用通配符或LIKE条件呢?
在EXPLAIN和PROFILE选项显示查询的执行计划。
它们显示两个查询完全相同的执行计划(在空数据库上)。
因此,从性能角度来看,这两种表示法应该完全相同。
当您知道属性值时,第一种形式似乎可以很好地工作,但是是否可以使用通配符或LIKE条件呢?
没错,可以WHERE为您提供更大的灵活性。基本上,该MATCH子句仅允许您检查可以写为的相等性WHERE a.prop1 = value1 AND a.prop2 = value2 AND ...。同时,WHERE可以让你多了很多:在AND/ OR/ XOR和NOT逻辑运算符,检查不平等; 使用STARTS WITH,CONTAINS,ENDS WITH和正则表达式; 检查节点类型WHERE (a:SomeLabel)(甚至检查匹配变量是否是模式的一部分)WHERE NOT (a)-[:SOME_REL]->(:SomeLabel)。
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |