在密码neo4j查询中没有()

时间:2014-07-17 16:42:59

标签: neo4j cypher

我遇到一个简单的密码查询问题。查询是:

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()

的理解不足

1 个答案:

答案 0 :(得分:6)

岛,

查询正在返回您要求的内容。在链接的示例中,有三个区域。前两个区域不包含任何对象,因此返回所有三个节点。如果将RETURN行更改为

RETURN a.area_number, o.id

你会看到这一点。

我不知道您的大问题上下文,但如果您想了解不在任何区域内的对象,那么查询

MATCH (o:object)
WHERE NOT (o)<-[:CONTAINS]-()
RETURN o.id

将完成任务。

恩典与和平,

吉姆