【发布时间】:2011-12-29 15:06:09
【问题描述】:
我在玩 neo4j 并注意到所有 Cypher 查询都需要在 START 子句中找到一个起点。
我想知道如何使用 Cypher 找到所有断开连接的节点?
谢谢
【问题讨论】:
标签: neo4j graph-databases cypher
我在玩 neo4j 并注意到所有 Cypher 查询都需要在 START 子句中找到一个起点。
我想知道如何使用 Cypher 找到所有断开连接的节点?
谢谢
【问题讨论】:
标签: neo4j graph-databases cypher
如果您的所有节点都已编入索引(例如通过自动索引),您可以使用索引查询作为起点,然后找到那些没有传出关系的节点。
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 无法进行图形全局查询。
【讨论】: