Neo4j 密码 return 具有特定格式的路径
Neo4j cypher return Path with a specific format
我有一个密码查询 return 两个节点之间的最短路径。
我正在使用 Java JdbcTemplate。
MATCH (nodeA),(nodeB), p = shortestPath((nodeA)-[*..15]-(nodeB)) " //
+ "WHERE ID(nodeA) = {1} and ID(nodeB) = {2} RETURN nodes(p) as nodes " //
+ ",relationships(p) as edges
我的问题是我有一个 Util 方法来映射 jdbctempate 结果。它仅在我的密码 returns 节点如:
时有效
RETURN { id : id(node), labels : labels(node), data: node } as node
有没有办法让我的初始密码 return 成为那种格式的结果?
NODES returns 节点列表,因此您可以使用 UNWIND 将列表解压缩为一组行。所以在你的例子中......
MATCH (nodeA),(nodeB), p = shortestPath((nodeA)-[*..15]-(nodeB))
WHERE ID(nodeA) = {1} AND ID(nodeB) = {2}
UNWIND nodes(p) as n
RETURN { id : id(n), labels : labels(n), data: n} as node, relationships(p) as edges
您可以使用 WITH + COLLECT 将节点折叠回列表中,然后根据需要对关系执行相同的操作。
我有一个密码查询 return 两个节点之间的最短路径。
我正在使用 Java JdbcTemplate。
MATCH (nodeA),(nodeB), p = shortestPath((nodeA)-[*..15]-(nodeB)) " //
+ "WHERE ID(nodeA) = {1} and ID(nodeB) = {2} RETURN nodes(p) as nodes " //
+ ",relationships(p) as edges
我的问题是我有一个 Util 方法来映射 jdbctempate 结果。它仅在我的密码 returns 节点如:
时有效RETURN { id : id(node), labels : labels(node), data: node } as node
有没有办法让我的初始密码 return 成为那种格式的结果?
NODES returns 节点列表,因此您可以使用 UNWIND 将列表解压缩为一组行。所以在你的例子中......
MATCH (nodeA),(nodeB), p = shortestPath((nodeA)-[*..15]-(nodeB))
WHERE ID(nodeA) = {1} AND ID(nodeB) = {2}
UNWIND nodes(p) as n
RETURN { id : id(n), labels : labels(n), data: n} as node, relationships(p) as edges
您可以使用 WITH + COLLECT 将节点折叠回列表中,然后根据需要对关系执行相同的操作。