neo4j cypher返回结构化地图

时间:2015-05-19 13:00:30

标签: collections neo4j cypher

可以说,我们有一个数据库  (:TvShow) - [:包含] - GT;(:季) - [:包含] - GT;(:插曲)

现在假设,人们想要查询数据库中的特定内容:TvShow并以这种方式获得结果: {tvshow:// tvShow节点//,四季:[{season://季节点//,剧集:[//剧集节点//]}}}

例如:如果有的话 OneShow有2个季节和3个剧集

结果将是一个json对象: {tvshow:OneShow,season:[{season:Season1,[episode1-1,episode1-2,episode1-3]},{season:Season1,[episode2-1,episode2-2,episode2-3]}}} < / p>

我尝试使用WITH,collect,FOREACH和数组运算符&#39; +&#39;但还没有成功。

之前有人这样做过吗?

1 个答案:

答案 0 :(得分:7)

基于以下Neo4j控制台数据集http://console.neo4j.org/r/7uru0d,您可以通过以下方式实现:

MATCH (n:TvShow)-[:HAS_SEASON]->(season)-[:HAS_EPISODE]->(episode)
WITH n, season, collect(episode) AS ep
RETURN { show: n.id, seasons:collect({ season: season.name, episodes: ep })} AS shows