在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 操作