在Neo4j 2.x中,使用Cypher 2.0很容易找到具有特定值的所有节点,如下所示:
MATCH (node {property: 'value'})
RETURN node;
但是,除了property
之外,我如何才能找到"value"
的任何值的所有节点?我尝试使用NOT
运算符,但是这样只是返回语法错误:
MATCH (node {property: NOT 'value'})
RETURN node;
答案 0 :(得分:5)
MATCH子句中属性的简明语法仅适用于完全匹配。
如果你想做任何其他类型的匹配条件,你应该使用WHERE子句:
MATCH (node)
WHERE node.property <> 'value'
RETURN node;
另一个例子:
MATCH (node)
WHERE NOT node.property IN ["red", "blue", "yellow"]
RETURN node;
请注意,这将执行整个图表扫描,强烈建议不要这样做。在任何合理的数据集大小上,此查询可能无法完成或至少未及时完成。