You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在apoc.convert.toTree的JSON结果中显示关系ID?

在Neo4j中通过apoc.convert.toTree获取关系ID的解决方法

你当前使用apoc.convert.toTree时能正常获取节点ID,但无法获取关系ID,期望输出包含关系ID的结构,之前尝试的CALL apoc.convert.toTree(paths, true, {rels: {acted_in: ['_id']}})无法生效,原因是关系的ID并非关系的原生属性,需要通过id(rel)函数提取后再传入转换过程。

可行解决方案

先在Cypher语句中将关系ID作为临时属性添加到对应关系上,再调用apoc.convert.toTree并指定包含该临时属性:

// 匹配目标路径
MATCH path=(m:Movie)-[r:acted_in]->()
// 给关系添加临时的_id属性,值为关系的ID
WITH apoc.path.extend(path, [], [], {relProps: {_id: id(r)}}) AS updatedPath
// 调用转换函数,指定要包含的关系属性(_id和roles)
CALL apoc.convert.toTree([updatedPath], true, {rels: {acted_in: ['_id', 'roles']}}) YIELD value
RETURN value

输出示例

执行后将得到你期望的格式:

{"_type":"Movie","_id":33,"title":"Something's Gotta Give","acted_in.roles":["Julian Mercer"],"acted_in._id":65}

补充说明

  • apoc.path.extend用于在原路径基础上给关系添加临时属性,不会修改数据库中的实际关系数据
  • 配置参数{rels: {acted_in: ['_id', 'roles']}}指定转换时要包含acted_in关系的_id和roles属性

内容的提问来源于stack exchange,提问作者DidGohf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:25:23