neo4j cypher返回结构化地图

Hug*_*ugo 3 collections neo4j cypher

可以说,我们有一个数据库(:TvShow) - [:contains] - >(:Season) - [:contains] - >(:Episode)

现在让我们说,有人想查询数据库中的特定内容: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]}]}

我正在尝试使用WITH,collect,FOREACH和数组运算符'+'但尚未成功.

以前有人这样做过吗?

Chr*_*sen 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
Run Code Online (Sandbox Code Playgroud)