neo4j图数据库中的元数据

时间:2014-07-24 10:19:05

标签: neo4j

我知道 neo4j 存储的是以图形而非表格形式构建的数据。在 RDBMS 中,我们将拥有表格的模式,但在 neo4j 中,我们将不会拥有表格。仅定义了节点,关系和属性。那么 neo4j 中有metadata的概念吗?就像存储有关节点,数据库中的关系的信息一样吗?如果是,它在元数据中的存储方式和内容是什么?我们还可以在哪里找到图数据库(位置)中的元数据相关信息

谢谢,

2 个答案:

答案 0 :(得分:4)

Neo4J不会以您正在寻找的方式直接存储元数据。 NeoProfiler工具是为此目的编写的。您可以在Neo4J数据库上运行它,它将尽可能多地提取有关标签,索引,约束,属性,节点和关系的信息。它的工作方式与@ulkas在其他答案中建议的查询相差不远,输出效果要好得多。

更广泛地说,在RDBMS中,您提取的架构信息基本上限制了数据库。那里的模式就像一套规则;除非符合该架构,否则无法插入数据。在Neo4J中,因为它是如此灵活,即使有一个模式,它只是文档中的内容,它不会是你可以放入的一组约束。在任何时候,你可以插入没有任何内容的新数据与当前架构有关(除了你不能违反唯一性约束之类的东西)。

如果您想在neo4j中查看数据库的等效架构,请查看上面链接的neoprofiler。那里的一些人已经写过关于“元图”的文章 - 也就是说,他们谈论将neo4j模式表示为图形本身,例如节点指的是标签。然后,来自“标签节点”的关系转出到其他类型的标签节点,指定节点之间可以存在哪种关系。例如,标记为“Employee”的节点可能经常与标签“Company”的节点具有“works_for”关系。

答案 1 :(得分:2)

不,不存在直接元数据。你可以做的最大的事情就是查询所有结构类型,并在内部有一个小的内部,可以在db中存储哪种图形。

START r=rel(*)
RETURN type(r), count(*)
START n=node(*)
RETURN labels(n), count(*)

特定的数据库文件存储在文件夹data/graph.db中,但除了一些索引和密钥文件外,它们是二进制的,不易读取。