首页 > 解决方案 > Neo4j:WHERE NOT 返回不正确的节点

问题描述

运行此查询时:

MATCH (profile:Profile)
MATCH (profile)-[:INTERACTION]->(i)
WHERE NOT 'foo' IN i.content
RETURN DISTINCT profile

Neo 正在返回具有即使我声明的关系的profile节点。:INTERACTIONi.content = fooWHERE NOT

INTERACTION节点结构如下:

[{
  "content": String
}]

我错过了一步吗?

标签: neo4j

解决方案


IN关键字仅用于测试一个值是否是列表的成员。例如:5 IN [1,2,3]

要测试是否包含在字符串中,有几个选项。一种选择是使用CONTAINS关键字;例如:i.content CONTAINS 'foo'

注意:在您的查询中,i是节点的变量,而不是关系。您是否真的在尝试测试关系的内容属性?请更正您的问题,因为您目前似乎可以互换使用术语“节点”和“关系”。


推荐阅读