我正在玩弄neo4j并注意到所有Cypher查询都需要 START 子句中的起点 . 我想知道如何使用Cypher找到所有断开连接的节点?
START
谢谢
如果所有节点都已编制索引(例如,通过自动索引),则可以使用索引查询作为起点,然后查找那些没有传出关系的节点 .
start n=node:node_auto_index("id:*") match n-[r?]->m where r is null return n
现在我宁愿使用:
start n=node:node_auto_index("id:*") where not (n-->m) return n
我使用这样的东西,但只有当我使用spring-data-neo4j:
start n = node:__types__(className="com.app.entity.Model") // match, where... return n
希望有所帮助!
使用Neo4j v3.0我只是使用;
MATCH (n) WHERE NOT (n)--() RETURN n
(或其变体) . 查询速度相当快 .
你不能 . 今天的Cypher无法实现图形全局查询 .
4 回答
如果所有节点都已编制索引(例如,通过自动索引),则可以使用索引查询作为起点,然后查找那些没有传出关系的节点 .
现在我宁愿使用:
我使用这样的东西,但只有当我使用spring-data-neo4j:
希望有所帮助!
使用Neo4j v3.0我只是使用;
(或其变体) . 查询速度相当快 .
你不能 . 今天的Cypher无法实现图形全局查询 .