json - 将整个 Neo4j 数据库/密码结果导出到 GraphJSON

标签 json database neo4j export

我已经看过不同的帖子,比如 thisthis但似乎没有 100% 的答案。 我目前的问题是,我想可视化 - 理想情况下 - 使用库(或软件/工具)分析我的 Neo4j-Graph。 数据库服务器在远程(虚拟)服务器上运行,似乎没有机会将数据库导出为我可以使用的格式。 我尝试在 .graphml 文件中导出图形以在 Gephi 中导入该文件,但 Gephi 找不到属性。带有 apoc-procedures 和 graph-streaming 插件的 Gephi-streaming 也不起作用,因为它是一个远程服务器(也使用提到的工具 here )。 现在,我目前正在使用 Alchemy.js 进行测试……到目前为止,还不错。但是似乎没有办法将图形/查询导出为 GraphJson 格式? 真的没有导出数据的“简单”方法吗?

提前感谢您的帮助!

最佳答案

这就是我的做法

从您在 Neo4j 浏览器或任何 bolt 驱动程序中提到的帖子运行此查询:

MATCH (a)-[r]->(b)
WITH collect(
    {
        source: id(a),
        target: id(b),
        caption: type(r)
    }
) AS edges
RETURN edges

现在您已经加载了数据,您可以使用下载按钮将其简单地下载为 JSON。(如果您使用的是 bolt 驱动程序,请忽略) download

无论您是从 Neo4j 浏览器手动下载 JSON 还是使用 bolt 驱动程序,您最终都会得到类似这样的结果。

{
  "columns": [
    "edges"
  ],
  "data": [
    {
      "row": [
        [
          {
            "source": 31288,
            "target": 152,
            "caption": "HAS_PAYMENT_METHOD"
          }
        ]
      ],
      "meta": [
        null
      ],
      "graph": {
        "nodes": [

        ],
        "relationships": [

        ]
      }
    }
  ]

现在您只需过滤掉 data.row 结果即可。可能使用 bolt 驱动器是更好的选择,因为无论如何您都必须清理数据,并且它不会遇到向浏览器返回大量数据的问题(它可能会崩溃)。

更新:添加了python版本

from neo4j.v1 import GraphDatabase

driver = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "neo4j"))


session = driver.session()


result = session.run("MATCH (a)-[r]->(b) WITH collect({source: id(a),target: id(b),caption: type(r)}) AS edges RETURN edges")

for record in result:
    print(record["edges"])

希望对你有帮助

关于json - 将整个 Neo4j 数据库/密码结果导出到 GraphJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770231/

相关文章:

javascript - 渲染一个 Jbuilder 模板并将字符串分配给 gon

html - 如何在JSP中使用数组将Html表值插入数据库

neo4j - Neo4j 中 Cypher 查询附带的重复属性

使用 neo4j 进行分页(图数据库)

json - Angular 2 将 JSON 对象解析为 Angular 类

java - StAXON - 当 autoPrimitive 为 true 时,强制将特定值设置为 String

javascript - 如何将一种格式的json转换为另一种格式

php - 插入前mysql数据库比较

ruby-on-rails - "Couldn' t find User without an ID"访问相关模型

neo4j - 使用 Neo4j 处理大型数据集的经验?