Как объединить (левое соединение) список свойств внешнего узла в python в neo4j? - PullRequest
0 голосов
/ 21 июня 2019

Я хочу, чтобы "оставил соединение" список свойств узла, определенных в python INTO neo4j для визуализации. Более конкретно,

У

  1. neo4j : сеть, содержащая в общей сложности ~ 16k (:user) узлов. Узлы (:user) имеют свойство .UserId в качестве уникального идентификатора.

  2. python 3 : список (UserId, Role) показан ниже. * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    * * * * * * * * найден пользовательским алгоритмом в Python. *1022*

    UserId Role
    ---------------
    5 1
    6 3
    7 2
    10 0
    .... (всего ~ 16 тыс. Узлов)

Хочу :

Запишите Role обратно в базу данных neo4j для соответствующего UserId, чтобы я мог дополнительно раскрасить (:user) узлы с помощью Role. Role может быть добавлен в качестве тега или свойства, но я не уверен, куда идти.

Это должно быть обычной задачей на практике. Но мне не удалось найти что-либо релевантное в официальных документах google, stackoverflow и neo4j.

1 Ответ

1 голос
/ 22 июня 2019

Если ваш список находится в переменной data и вы используете драйвер Python neo4j, вы можете использовать такой фрагмент (передавая список в параметре $list ):

query = "UNWIND $list AS ur MATCH (u:user {UserId: ur.UserId}) SET u.Role=ur.Role"
with driver.session() as session:
    with session.begin_transaction() as tx:
        tx.run(query, list=data)

Этот запрос будет выполняться быстрее, если у вас есть index на :user(UserId).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...