Dia*_*par 17 database neo4j cypher
我有一个neo4j数据库,具有以下内容:
a:Foo
b:Bar
Run Code Online (Sandbox Code Playgroud)
大约10%的db有 (a)-[:has]->(b)
我只需要获得那些没有这种关系的节点!
以前做的事情()-[r?]-()会很完美!然而,它不再受支持:(而是,正如他们建议的那样
OPTIONAL MATCH (a:Foo)-[r:has]->(b:Bar) WHERE b is NULL RETURN a
Run Code Online (Sandbox Code Playgroud)
给我一个null结果,因为可选匹配需要BOTH节点在那里或BOTH节点不在那里......
那么如何获得所有未a:Foo附加的节点b:Bar?
注意:数据集是数百万个节点,因此查询需要高效或以其他方式超时.
Jan*_*sch 30
那就是
MATCH (a:Foo) WHERE not ((a)-[:has]->(:Bar)) RETURN a;
Run Code Online (Sandbox Code Playgroud)
如果您要查找所有单身人士/孤儿,这也可以使用:
MATCH (a:Foo) WHERE not ((a)--()) RETURN a;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6930 次 |
| 最近记录: |