Neo4J - условно заданное значение в слиянии - PullRequest
0 голосов
/ 17 октября 2018

В Neo4J я создаю узлы, используя, например, «слияние» -

MERGE (p: Person {id: 'testId1234' }) RETURN p

Теперь, если все правильно понять, будет создан узел P, если он не существует с идентификатором 'testId1234'.Теперь я хочу установить свойство eligible_for_vote только если возраст человека был старше 18 лет, как я могу это сделать?

Когда я вставляю узел в график, у меня есть доступ к его возрасту.Но я не знаю, как я могу использовать SET условно вместе с MERGE

Короче, я пытаюсь сделать что-то вроде этого -

MERGE (p: Person {id: 'testId1234'})
SET 
if age >= 18
  p.eligible_for_vote = true
end
p.age = 18
RETURN p

какие-либо предложения?

1 Ответ

0 голосов
/ 17 октября 2018

Не совсем уверен, подходит ли это всем вашим требованиям, но, надеюсь, это поможет в любом случае.

MERGE (p: Person {id: 'testId1234'})
ON CREATE SET p.age = 18, p.eligible_for_vote = true
ON MATCH SET p.eligible_for_vote = p.age >= 18
RETURN p

Условные выражения ON MATCH и ON CREATE вызываются условно в зависимости от того, привело ли MERGE к созданиюновый узел или соответствующий существующий узел (узлы), но вы можете использовать только операции SET для любого из них

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