首页 > 解决方案 > 如何在 Neo4j Query 中获取唯一的节点

问题描述

我扫描了一个小型 Java 应用程序,现在我正在尝试在 neo4J 上运行此查询

MATCH (n:Class)-[rel]-(cls:Class) RETURN n,cls,rel

结果是给多个节点具有相同的 id 有没有办法获得所有这些关系,但每个唯一节点应该只出现一次。我确实设法通过循环获得唯一的但有没有办法通过这个查询本身会给出唯一的节点

标签: neo4j

解决方案


如果要返回节点和边数组,我建议使用以下密码查询:

MATCH (n:Class)
WITH collect(n) as nodeArray
MATCH (c1:Class)-[rel]->(c2:Class)
WITH nodeArray, collect([c1,rel,c2]) as edgeArray
RETURN nodeArray, edgeArray

您显然可以以不同的方式构造 edgeArray,但我不知道您的首选结构是什么。


推荐阅读