一个节点的属性有 6 个类别。我想让所有具有此属性的节点不等于其中一个类别。
这样做很容易WHERE:
MATCH (a)
WHERE a.property <> "category"
RETURN a
我想用另一种方式来做,where因为它似乎更有效率。我想象它是这样的:
MATCH ( a {property <> "category"} )
RETURN a
可能吗?
Neo4j MATCH没有内联语法WHERE NOT <property>=<value>。此外,Cypher 是声明性的,这意味着它只定义要返回的内容,而不是如何返回它。因此MATCH (n{id:1})(在执行中)等效于MATCH (n) WHERE n.id=1. WHERE 与内联产生不同执行计划的唯一时间是当您不将 WHERE 子句与 MATCH 配对时。通过尝试“优化”您的 cypher 以供执行,大多数情况下您只会采用 Cypher 规划者的方式。(除非您的原始密码过于复杂)