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

如何在JavaScript中从Neo4J获取完整图JSON数据?求APOC完整示例

使用apoc.export.json.data导出图数据的完整示例

你需要的是通过Cypher结合APOC的apoc.export.json.data导出图数据的可运行示例,以下是正确的实现方式:

完整可运行Cypher代码

// 匹配任意路径,提取所有涉及的节点和关系
MATCH g=(someNode)-[someRel]-()
// 将节点和关系分别收集为集合
WITH collect(someNode) AS exportNodes, collect(someRel) AS exportRels
// 调用APOC导出函数,以流的形式返回JSON结果(也可导出到文件)
CALL apoc.export.json.data(exportNodes, exportRels, {stream: true}) YIELD data
RETURN data

参数说明

  • {stream: true}:让导出的JSON直接返回在查询结果中,适合快速查看
  • 如果需要导出到文件,可替换为{file: "your-output-path/graph-data.json"}(路径需符合Neo4j的文件访问权限配置)

预期返回的JSON格式

{
  "nodes": [
    { "id": "a1a1", "labels": ["Something"], "prop_a": 99 },
    { "id": "a2a2", "labels": ["Something"], "prop_a": 77 },
    { "id": "a3a3", "labels": ["User"], "prop_a": 33 }
  ],
  "edges": [
    { "id": "a1a1", "type": "OWNS", "prop_a": 99 },
    { "id": "a2a3", "type": "OWNS", "prop_a": 77 },
    { "id": "a4a5", "type": "HAS", "prop_a": 33 }
  ]
}

注:关系的字段是type而非labels,这是Neo4j中关系类型的标准表述,和节点的标签区分开

扩展说明

  • 若只需导出特定标签/类型的节点或关系,可在MATCH语句中添加过滤条件,例如:
    MATCH g=(n:User)-[r:OWNS]-()
    WITH collect(n) AS exportNodes, collect(r) AS exportRels
    CALL apoc.export.json.data(exportNodes, exportRels, {stream: true}) YIELD data
    RETURN data
    
  • 可通过配置参数控制导出内容,比如{stream: true, skipProperties: ["password"]}跳过敏感属性,{useTypes: true}保留属性的类型信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:15:35