根据密码请求中的条件设置propery

时间:2015-05-27 13:50:49

标签: neo4j cypher

我正在处理密码请求,但我不明白如何根据条件设置属性。我目前的要求如下:

"MATCH (p:Picto{uuid : {pictoUuid}}) OPTIONAL MATCH (p)-[:PICTO_OF]->(e:Element) SET p.deleted = true, e.deleted = true"

我想要做的是只有当元素的所有picto都已删除属性等于true时才设置“e.deleted = true”。

我认为在this post中有一些事可做,但我不明白如何实现这一目标。

非常感谢

1 个答案:

答案 0 :(得分:1)

此查询是否适合您?它将指定的Picto标记为已删除,然后检查与其Pictos(如果有)关联的所有Element是否已标记为已删除。如果是,则标记Element也被删除。

MATCH (p:Picto{uuid : {pictoUuid}})
OPTIONAL MATCH (p)-[:PICTO_OF]->(e:Element)
SET p.deleted = TRUE
WITH e
MATCH (x)-[:PICTO_OF]->(e)
WITH e, COLLECT(x) AS pictos
WHERE ALL(p IN pictos WHERE p.deleted = TRUE)
SET e.deleted = TRUE;