neo4j 密码 return 结构化映射
neo4j cypher return structured map
比方说,我们有一个数据库
(:TvShow)-[:contain]->(:Season)-[:contain]->(:Episode)
现在假设,想要查询数据库中的特定 :TvShow 并获得这样的结果:
{tvshow : //tvShow 节点//, seasons: [ {season: //Season 节点//, episodes: [//episode node//]}]}
例如:如果我们有
OneShow 2 季 3 集
结果将是一个 json 对象:
{tvshow: OneShow, seasons: [{season: Season1, [episode1-1,episode1-2,episode1-3]},{season: Season1, [episode2-1,episode2-2,episode2-3]}]}
我正在尝试使用 WITH、collect、FOREACH 和数组运算符“+”,但还没有成功。
有人做过吗?
基于下面的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
比方说,我们有一个数据库 (:TvShow)-[:contain]->(:Season)-[:contain]->(:Episode)
现在假设,想要查询数据库中的特定 :TvShow 并获得这样的结果: {tvshow : //tvShow 节点//, seasons: [ {season: //Season 节点//, episodes: [//episode node//]}]}
例如:如果我们有 OneShow 2 季 3 集
结果将是一个 json 对象: {tvshow: OneShow, seasons: [{season: Season1, [episode1-1,episode1-2,episode1-3]},{season: Season1, [episode2-1,episode2-2,episode2-3]}]}
我正在尝试使用 WITH、collect、FOREACH 和数组运算符“+”,但还没有成功。
有人做过吗?
基于下面的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