首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用neo4j获取根父节点

使用neo4j获取根父节点
EN

Stack Overflow用户
提问于 2020-09-18 16:41:56
回答 1查看 36关注 0票数 0

我已经将csv文件导入到neo4j,并为它们创建了节点和关系。

在上面的代码中,前两个节点位于db1之下,后四个节点位于db2之下。如何找到属于db2的最后四个节点?

以下是代码和csv文件列名、表名、数据库名、系统名abc、1a、db1、财务定义、1a、db1、财务ghi、1a、db1、财务klm、1a、db1、财务abc、1a、db2、医疗定义、1a、db2、医疗ghi、1a、db2、医疗klm、1a、db2、医疗nop、1a、db2、医疗qrs、1a、db2、医疗

代码语言:javascript
运行
复制
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'?

EN

回答 1

Stack Overflow用户

发布于 2020-09-18 20:36:59

据我所知,你有一个模式

代码语言:javascript
运行
复制
(:ColumnName)-[:iscolumnof]->(:TableName)-[:istableof]->(:DatabaseName)-[:isdatabaseof ]->(:SystemName)

如果要测试某个:ColumnName是否属于某个:DatabaseName

代码语言:javascript
运行
复制
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的所有列

代码语言:javascript
运行
复制
WITH 'db2' AS databaseName
MATCH (c:ColumnName)-[:iscolumnof]->(:TableName)-[:istableof]->(:DatabaseName {DatabaseName:databaseName}) 
RETURN c.ColumnName AS column
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63952269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档