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

能否通过编程或API获取Memgraph的图模式及Memgraph Lab的底层数据?

编程提取Memgraph图模式及获取Memgraph Lab视图底层数据的方法

一、编程提取Memgraph的图模式

你可以通过Cypher查询结合Memgraph的标准API(Bolt/HTTP)来编程获取图模式,这是最稳定且通用的方式:

1. 用Cypher查询核心元数据

直接执行Cypher语句即可提取图的节点标签、关系类型及属性信息:

  • 获取所有节点标签:
MATCH (n) RETURN DISTINCT labels(n) AS node_labels;
  • 获取所有关系类型:
MATCH ()-[r]->() RETURN DISTINCT type(r) AS relationship_types;
  • 获取带属性的节点模式(标签+属性键):
MATCH (n)
UNWIND keys(n) AS prop_key
RETURN DISTINCT labels(n) AS node_label, prop_key
ORDER BY node_label, prop_key;
  • 获取带属性的关系模式(类型+属性键):
MATCH ()-[r]->()
UNWIND keys(r) AS prop_key
RETURN DISTINCT type(r) AS rel_type, prop_key
ORDER BY rel_type, prop_key;

2. 通过API执行查询

Bolt协议客户端(以Python为例)

用兼容的驱动连接Memgraph并执行查询:

from neo4j import GraphDatabase

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

with driver.session() as session:
    # 获取节点标签
    node_labels = session.run("MATCH (n) RETURN DISTINCT labels(n) AS node_labels").data()
    # 获取关系类型
    rel_types = session.run("MATCH ()-[r]->() RETURN DISTINCT type(r) AS rel_types").data()
    print("节点标签:", node_labels)
    print("关系类型:", rel_types)

driver.close()

HTTP API

通过POST请求执行Cypher:

curl -X POST http://localhost:7447/db/neo4j/tx/commit \
  -H "Content-Type: application/json" \
  -d '{
    "statements": [
      {
        "statement": "MATCH (n) RETURN DISTINCT labels(n) AS node_labels"
      }
    ]
  }'

二、获取Memgraph Lab图模式视图的底层数据

Memgraph Lab的图模式视图本质是通过执行Cypher查询聚合元数据后渲染的,你可以通过以下方式获取同款底层数据:

  • 复用Lab的查询逻辑:直接执行前面提到的Cypher组合查询,就能拿到Lab视图依赖的所有结构化元数据,无需依赖Lab的内部接口。
  • 避免依赖Lab内部API:Memgraph Lab的内部接口没有公开文档,且随版本迭代可能变化,因此不建议直接调用。浏览器开发者工具能看到Lab的请求,但最可靠的方式还是用标准Cypher+官方API获取数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:43:32