在 Neo4j 中动态创建节点和关系

Creating nodes and Realtionships in Neo4j Dynamically

我的目录结构如下

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

我想为每个文件夹创建节点,并且我想要它们之间的关系。

示例图如下所示

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

Internship <-contains-> shiva.txt

我将以动态方式传递路径。

我想一个解决方案可能是使用 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) 作为函数 adding/merging 将节点元素添加到您的 Neo4J 图形并添加您想要的关系。