可以说,我们有一个数据库 (: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;但还没有成功。
之前有人这样做过吗?
答案 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