Neo4J-有条件地设置合并值

时间:2018-10-16 21:36:47

标签: neo4j merge set conditional

例如,在Neo4J中,我使用“合并”创建节点-

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

现在,如果正确理解这一点,则将创建一个ID为'testId1234'的节点P。现在,我只想设置一个属性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 :(得分:0)

不确定是否能满足您的所有要求,但希望在任何情况下都可以。

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

根据MERGE是否导致创建新节点或匹配现有节点,有条件地调用ON MATCH和ON CREATE子句,但只允许对其中一个使用SET操作