我遇到一个简单的密码查询问题.查询是:
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
Run Code Online (Sandbox Code Playgroud)
"WHERE NOT .."被忽略了,我从区域节点返回带有传入的节点:CONTAINS关系.如果我取出"NOT"函数,那么我正确地只返回具有这种 - > o关系的节点.
我想我对NOT()的理解很弱
岛,
查询正在返回您要求的内容.在链接的示例中,有三个区域.前两个区域不包含任何对象,因此返回所有三个节点.如果将RETURN行更改为
RETURN a.area_number, o.id
Run Code Online (Sandbox Code Playgroud)
你会看到这个.
我不知道你的大问题上下文,但如果你想知道不在任何区域的对象,那么查询
MATCH (o:object)
WHERE NOT (o)<-[:CONTAINS]-()
RETURN o.id
Run Code Online (Sandbox Code Playgroud)
将完成任务.
恩典与和平,
吉姆