在 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 图形并添加您想要的关系。
我的目录结构如下
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 图形并添加您想要的关系。