neo4j 一次返回根节点,以及 json 中的所有关系和端节点

Kri*_*ian 2 neo4j cypher

我正在尝试对节点的所有已知内容进行 html 视图。

所以,如果我要选择那个节点nRETURN n,我会得到一个带有 的 json 对象n: { stuff ... },如果我还返回它的关系和连接的节点RETURN n,r,n2,现在我得到一个非常冗长的 json 对象:

[
  {
    n: { originating node details },
    r: { relationship details },
    n2: { connected node details }
  },
  {
    n: { originating node details },
    r: { relationship details },
    n2: { connected node details }
  },
  {
    n: { originating node details },
    r: { relationship details },
    n2: { connected node details }
  }
]
Run Code Online (Sandbox Code Playgroud)

n多次出现相同的确切数据。所以,理论上,这没问题,我可以说var seedNodeData = results[0].n并使用它作为获取主节点数据的一种方式,然后分别迭代所有对象以列出连接节点数据。但是,这似乎浪费了传输的数据。

目前,为了限制该数据,我只是RETURN r,n2因为第一个总是相同的,但是我需要单独调用 getn的数据。

有没有一种方法可以一次调用获取信息n,然后[r]-(n2)根据需要多次调用并将其打包到一个密码查询中?

Dav*_*ett 5

您可以将关系和亲属聚合到一个集合中。像这样的事情对你有用吗?

match n-[r]->n2
with n, [type(r), n2] as relative
return { root: n, relatives: collect(relative) }
Run Code Online (Sandbox Code Playgroud)