Neo4j 在Cypher中使用match({property})和WHERE子句的区别
我注意到,Neo4j 在Cypher中使用match({property})和WHERE子句的区别,neo4j,cypher,Neo4j,Cypher,我注意到,match(a:plastice{name:'Cellery})返回一个,match(a:plastice),其中a.name='Cellery'返回一个给我相同的结果 两者之间有什么实际区别吗?当您知道属性值时,第一个表单似乎工作得很好,但是有没有办法使用通配符或类似条件?显示查询的执行计划 它们为两个查询显示完全相同的执行计划(在空数据库上) 因此,就性能而言,这两种符号应该完全相同 当您知道属性值时,第一种形式似乎工作得很好,但是有没有办法使用通配符或类似的条件 没错,其中为
match(a:plastice{name:'Cellery})返回一个
,match(a:plastice),其中a.name='Cellery'返回一个
给我相同的结果
两者之间有什么实际区别吗?当您知道属性值时,第一个表单似乎工作得很好,但是有没有办法使用通配符或类似条件?显示查询的执行计划
它们为两个查询显示完全相同的执行计划(在空数据库上)
因此,就性能而言,这两种符号应该完全相同
当您知道属性值时,第一种形式似乎工作得很好,但是有没有办法使用通配符或类似的条件
没错,其中
为您提供了更大的灵活性。基本上,MATCH
子句只允许您检查可写为的等式,其中a.prop1=value1和a.prop2=value2和…
。同时,其中
允许更多:检查不等式的和
/或
/异或
和非
逻辑运算符;使用以
开头,包含
,以
和正则表达式结尾;检查节点类型,如WHERE(a:SomeLabel)
,甚至检查匹配的变量是否是模式的一部分,如WHERE NOT(a)-[:somerel]->(:SomeLabel)