在Neo4j中动态创建节点和Realshipships

时间:2019-05-25 19:58:47

标签: python-3.x neo4j py2neo

我的目录结构如下

C:\Users\Shiva\Desktop\Internship\shiva.txt

我想在每个文件夹中创建节点,并且希望它们之间具有关系。

示例图将如下所示

C <-contains-> Users <-contains-> Shiva <-contains-> desktop <-contains-> 

Internship <-contains-> shiva.txt

我将以动态的方式走这条路。

1 个答案:

答案 0 :(得分:0)

我想一个解决方案可能是使用Python的os.walk()

此功能可以用作:

from os import walk

def add_node(root, elem):
    query = 'MATCH (r: Directory {{name: "{0}"}})\
                CREATE (e: Directory {{name: "{1}")\
                CREATE (r)-[l: CONTAINS]->(e)\
                RETURN id(e), id(l)'.format(root, elem)
    # Run the query with your driver instance here

# Add the node for root here

for root, dirs, files in os.walk(your_dynamic_path, topdown = False):
    for dir in dirs:
        add_node(root, dir)
    for file in files:
        add_node(root, file)

add_node(root, elem)是一个函数,用于将节点elem添加/合并到Neo4J图中并添加所需的关系。