Neo4j中MATCH的“ NOT”运算符

Shr*_*pta 5 neo4j cypher

在Neo4j 2.x中,很容易使用Cypher 2.0为给定属性查找具有特定值的所有节点,如下所示:

MATCH (node {property: 'value'}) 
RETURN node;
Run Code Online (Sandbox Code Playgroud)

但是,我将如何查找property除以外的任何值的所有节点"value"我试过NOT像这样使用运算符,但这只会返回语法错误:

MATCH (node {property: NOT 'value'}) 
RETURN node;
Run Code Online (Sandbox Code Playgroud)

alb*_*omo 7

MATCH子句中属性的简洁语法仅适用于完全匹配。

如果要执行任何其他类型的匹配条件,则应使用WHERE子句:

MATCH (node)
WHERE node.property <> 'value'
RETURN node;
Run Code Online (Sandbox Code Playgroud)

另一个例子:

MATCH (node)
WHERE NOT node.property IN ["red", "blue", "yellow"]
RETURN node;
Run Code Online (Sandbox Code Playgroud)

请注意,强烈建议您进行整个图形扫描。在任何合理的数据集大小上,此查询可能不会完成或至少没有及时完成。