Memgraph表达式模式使用报错:如何执行指定匹配查询?
解决Memgraph中"NOT (n)-[]->(:NodeB)"查询报错的问题
Memgraph目前不支持在WHERE子句中直接使用NOT加模式表达式的语法,你可以用以下两种等价方式实现需求:
方法1:使用NOT EXISTS()子句
将原模式包裹在EXISTS()函数中,通过NOT否定存在性:
MATCH (n:NodeA) WHERE NOT EXISTS((n)-[]->(:NodeB)) RETURN n;
方法2:使用OPTIONAL MATCH结合NULL判断
通过OPTIONAL MATCH尝试匹配关系,过滤掉匹配到节点的情况(即无匹配时节点为NULL):
MATCH (n:NodeA) OPTIONAL MATCH (n)-[]->(b:NodeB) WHERE b IS NULL RETURN n;
这两种写法都能实现“找出所有没有指向NodeB节点的NodeA节点”的需求,且符合Memgraph的Cypher语法规范。
内容的提问来源于stack exchange,提问作者KWriter
相关产品推荐
相关产品推荐

