Создание узлов и Realtionships в Neo4j динамически - PullRequest
0 голосов
/ 25 мая 2019

У меня есть структура каталогов, как показано ниже

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

Я хочу создать узлы в качестве каждой папки и хочу, чтобы между ними была взаимосвязь.

Пример графика будет таким

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

Internship <-contains-> shiva.txt

Я собираюсь пройти путь динамически.

1 Ответ

0 голосов
/ 27 мая 2019

Я полагаю, что решением может быть использование Python's 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)будучи функцией добавления / объединения элемента node в ваш граф Neo4J и добавления требуемого отношения.

...