我遇到一个简单的密码查询问题。查询是:
MATCH (u:user { google_id : 'example_user' })--(rm:room)--(a:area),
(c:category { name : 'culture:Yoruba' })--(o:object)
WHERE NOT (a-[:CONTAINS]->o)
RETURN DISTINCT o.id
“WHERE NOT ..”被忽略,我从区域节点返回带有传入:CONTAINS关系的节点。如果我取出“NOT”函数,那么我只能正确地返回具有这种 - > o关系的节点。
我认为我对NOT()
的理解不足答案 0 :(得分:6)
岛,
查询正在返回您要求的内容。在链接的示例中,有三个区域。前两个区域不包含任何对象,因此返回所有三个节点。如果将RETURN行更改为
RETURN a.area_number, o.id
你会看到这一点。
我不知道您的大问题上下文,但如果您想了解不在任何区域内的对象,那么查询
MATCH (o:object)
WHERE NOT (o)<-[:CONTAINS]-()
RETURN o.id
将完成任务。
恩典与和平,
吉姆