4

我在玩 neo4j 并注意到所有 Cypher 查询都需要在START子句中有一个起点。我想知道如何使用 Cypher 找到所有断开连接的节点?

谢谢

4

4 回答 4

7

如果您的所有节点都被索引(例如通过自动索引),您可以使用索引查询作为起点,然后找到那些没有传出关系的节点。

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
于 2011-12-29T23:43:36.823 回答
2

我使用这样的东西,但只有当我使用 spring-data-neo4j 时:

    start n = node:__types__(className="com.app.entity.Model")
    // match, where...
    return n

希望有帮助!

于 2012-04-09T01:06:11.303 回答
2

使用 Neo4j v3.0+,我只使用;

MATCH (n)
WHERE NOT (n)--()
RETURN n

(或其变体)。查询相当快。

于 2018-07-02T10:16:29.540 回答
-2

你不能。当今的 Cypher 无法进行图形全局查询。

于 2011-12-29T16:40:15.170 回答