Neo4J - 有条件地设置合并中的值



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

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

现在,如果正确理解这一点,如果不存在 id 为"testId1234"的节点 P,则将创建一个节点 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

有什么建议吗?

不完全确定这是否符合您的所有要求,但希望它在任何情况下都会有所帮助。

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

ONMATCH 和 ON CREATE 子句是有条件地调用的,具体取决于 MERGE 是导致创建新节点还是匹配现有节点,但只允许对其中任何一个使用 SET 操作

最新更新