Создать отношения с несколькими значениями - PullRequest
0 голосов
/ 07 ноября 2019

как я могу создать отношение в NEO4J от одного узла к другому узлу с несколькими значениями.

Первый узел имеет уникальные значения для идентификатора. Например:

Данные первого NodeA:

  {
  "c": "11037",
  "b": 15.4,
  "a": 10.0,
  "id": 11137100
  }

Второй NodeB выглядит так:

  {
  "text": "some text",
  "prio": 1,
  "id": 11137100,
  "value": 0.1
  }

Но здесь у нас есть данные, которые имеют тот же идентификаторкак здесь:

  {
  "text": "some other text",
  "prio": 2,
  "id": 11137100,
  "value": 2.1
  }

Теперь хочу создать связь между обоими узлами. Но если я делаю что-то вроде:

MATCH (p:NodeA),(h:NodeB)
WHERE h.id = p.id 
CREATE (p)-[dr:Contains{prio:h.prio}]->(h)
RETURN (dr)

, я получаю несколько связей. Мне нужен один NodeA с двумя выходами для NodeB.

Как я могу это сделать?

1 Ответ

1 голос
/ 07 ноября 2019

Оператор CREATE создаст новый узел / отношение, независимо от того, существует ли он уже.

Если целью является создание отношения, только если оно еще не существует, я бы предложил вам предварительносначала отфильтруйте запрос, например,

MATCH (p:NodeA), (h:NodeB)
WHERE h.id = p.id AND NOT (p)-[:Contains{prio:h.prio}]->(h)
//continue your query here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...