我想让所有节点和关系在关系中匹配某些条件。
MATCH(a:DB {TABLE:'CONT',COLUMN:'STATUS_CDE'})-[b:RELATED*..]->(c:DB)
WHERE b.CLAUSE IN ['where','join','unknown']
RETURN a,b,c
但是当我尝试执行上述查询时,我收到以下错误消息。
Type mismatch: expected Map, Node or Relationship but was Collection<Relationship>
我使用的是Neo4j社区版v3.0.1。 我怎样才能实现目标?
答案 0 :(得分:2)
这是因为您对关系类型RELATED
使用变量深度 - b
现在是关系的集合,而不是您可以使用IN运算符的单个关系。
根据您是希望每个关系都具有其中一个值,还是只有一个/一个,您可以使用predicate这样的函数之一
MATCH(a:DB {TABLE:'CONT',COLUMN:'STATUS_CDE'})-[b:RELATED*..]->(c:DB)
WHERE all(rel in b where rel.name in ['where','join','unknown'])
RETURN a,b,c
(未测试的)