如何解决使用neo4j获取根父节点
我已将一个csv文件导入neo4j,并为其创建了节点和关系。
在上面,前两个节点位于db1下,后四个节点位于db2下。 如何找到最后四个节点属于db2?
下面是代码和csv文件 列名,表名,数据库名,系统名 abc,1a,db1,财务 def,1a,db1,财务 ghi,1a,db1,财务 klm,1a,db1,财务 abc,1a,db2,医疗 def,1a,db2,医疗 ghi,1a,db2,医疗 klm,1a,db2,医疗 nop,1a,db2,医疗 qrs,1a,db2,医疗
I've created nodes and relationships for the above csv file in neo4j
This is for getting unique values
CREATE CONSTRAINT ON (c:ColumnName) ASSERT c.ColumnName IS UNIQUE;
CREATE CONSTRAINT ON (c:TableName) ASSERT c.TableName IS UNIQUE;
CREATE CONSTRAINT ON (c:DatabaseName) ASSERT c.DatabaseName IS UNIQUE;
CREATE CONSTRAINT ON (c:SystemName) ASSERT c.SystemName IS UNIQUE;
This is for loading csv file and creating nodes and relationships
LOAD CSV WITH HEADERS FROM "file:///test.csv" AS line
MERGE (ColumnName:ColumnName {ColumnName: line.ColumnName})
MERGE (TableName:TableName {TableName:line.TableName})
MERGE (DatabaseName: DatabaseName {DatabaseName:line.DatabaseName})
MERGE (SystemName: SystemName {SystemName:line.SystemName})
This is creating relationships among the nodes
MERGE (ColumnName)-[:iscolumnof]->(TableName)
MERGE (TableName)-[:istableof]->(DatabaseName)
MERGE (DatabaseName)-[:isdatabaseof ]->(SystemName)
If,i select one node 'nop'and expand i'll get the node(1a) 1a and if i expand 1a i'll get all the
nodes(columns). How to find that 'nop' belongs to 'db2'?
解决方法
据我了解,您有一个模式
(:ColumnName)-[:iscolumnof]->(:TableName)-[:istableof]->(:DatabaseName)-[:isdatabaseof ]->(:SystemName)
如果要测试某个:ColumnName是否属于:DatabaseName
WITH 'nop' AS columnName,'db2' AS databaseName
MATCH (col:ColumnName {ColumnName:columnName}),(db:DatabaseName
{DatabaseName:databaseName})
RETURN EXISTS((col)-[:iscolumnof]->(:TableName)-[:istableof]->(db)) AS result
如果要db2的所有列
WITH 'db2' AS databaseName
MATCH (c:ColumnName)-[:iscolumnof]->(:TableName)-[:istableof]->(:DatabaseName {DatabaseName:databaseName})
RETURN c.ColumnName AS column
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。