如何使用 Cypher 在 Neo4J 中创建所有可能的关系和节点的 'blueprint'?

How to make a 'blueprint' of all possible relationships and nodes in Neo4J with Cypher?

我想要创建的是我的数据模型的蓝图。 我的意思是蓝图是一个新创建的数据模型,其中每个节点只创建一次;来自我的真实数据库的每个具有唯一标签(带有 eiter none,一个或多个标签)的节点必须被复制并显示一次。

对于此蓝图中的每个独特节点,我还需要一个关系蓝图。因此,对于每个 不同的 关系(通过名称、方向或连接的节点),我也只需要一种表示。

示例:假设我有 4 个节点,其中 2 个是个人,2 个是公司;然后在蓝图中只显示 2 个节点。这些是关系:

(c)-[:LIKES]->(p)
(c)-[:LIKES]->(p)
(c)-[:LIKES]->(c)
(c)-[:LIKES]->(c)
(p)<-[DISLIKS]-(c)

这些关系显示了 3 种独特的关系,基于名称、方向和连接的节点。 因此对于此蓝图,结果必须是具有 3 个唯一关系的 2 个唯一节点。

一段时间以来,我一直在努力编写实现这一点的代码。 非常感谢任何建议!

Neo4j 内置程序 db.schema.visualization() 似乎就是您要查找的内容:https://neo4j.com/docs/operations-manual/current/reference/procedures/#procedure_db_schema_visualization

示例: