【发布时间】:2016-05-06 10:58:25
【问题描述】:
我是 Neo4j 的新手,已经玩了几天了。
我正在尝试使用 Neo4j 来映射我们公司的数据库,通过显示一张表与另一张表的关系(数据被拉到或从一张表推送到另一张表)以及用于执行拉取和推送的脚本。为此,我使用了三个不同的属性:TableName、ScriptName 和 TableTouch。
- TableName:对应表名的表节点
- ScriptName:脚本节点对应的脚本 更新表格
- TableTouch:用于显示哪个表影响另一个表 表
这是我正在导入的 .CSV 示例:
TableName ScriptName TableTouch
Source ScriptA Water/Oil
Water ScriptB Source
Oil ScriptC Source
这是我到目前为止的代码:
CREATE CONSTRAINT ON (c:Table) ASSERT c.TableName IS UNIQUE;
CREATE CONSTRAINT ON (c:Scripts) ASSERT c.ScriptName IS UNIQUE;
LOAD CSV WITH HEADERS FROM
"file:///C:\\NeoTest.CSV" AS line
MERGE (table:Table {TableName: UPPER(line.TableName)})
SET table.TableTouch = UPPER(line.TableTouch)
MERGE (script:Scripts {ScriptName: UPPER(line.ScriptName)})
MERGE (table) - [:UPDATED_BY] -> (script)
这会将脚本与其相应的表相关联,并加载到所有表和脚本节点中。
现在我需要的一个示例是节点“Source”连接到节点“Water”,因为“Source”= Water.TableTouch 和“Water”= Source.TableTouch。
假设任何给定的表格都可以在 TableTouch 属性中列出多个表格。
我希望 TableName 节点连接到其他 TableName 节点,其中一个节点的 TableName 在另一个节点的 TableName.TableTouch 中找到。我该怎么做呢?我需要为此设置不同的 .CSV 格式吗?
谢谢, -安德鲁
编辑:这可能会让事情更清楚
我有什么:
【问题讨论】:
标签: neo4j