检查节点中所有源状态的查询是否已完成?

Query to check all source status in node is complete?

此查询删除状态为完成的节点,但在被删除的源中还有其他状态,如不完整或失败。如何检查节点中的所有源是否都已完成并删除节点?

MATCH (n:Sub)-[:HAS]->(s:Source{status:'COMPLETE'}) DETACH DELETE n

您可以使用 COLLECT and run a predicate with ALL 聚合所有来源。

MATCH (sub:Sub)-[:HAS]->(source:Source)
WITH sub, COLLECT(source) AS sources 
WHERE ALL(src IN sources WHERE src.status = 'COMPLETE')
DETACH DELETE sub