我需要将以下模式理解添加到我的 Cypher 查询的返回语句中:
[ (rc:Criterion) WHERE rc.id IN childD.replaceableCriterionIds | {entity: rc} ] AS decisionReplaceableCriteria
但它失败了,但出现以下异常:
Caused by: org.neo4j.driver.exceptions.ClientException: Invalid input 'WHERE': expected "-", "<", <ARROW_LEFT_HEAD> or <ARROW_LINE>
仅当我添加与另一个节点的冗余关系时才有效
[ (rc:Criterion)-[:CREATED_BY]->(:User) WHERE rc.id IN childD.replaceableCriterionIds | {entity: rc} ] AS decisionReplaceableCriteria
以下部分对于我的需求来说绝对是多余的:
-[:CREATED_BY]->(:User)
是否可以重写我的模式理解以避免这种冗余语法?
如果您使用的是 Neo4j 5.6+,则可以使用 COLLECT 子查询。这是一个示例片段:
...
RETURN COLLECT {
MATCH (rc:Criterion)
WHERE rc.id IN childD.replaceableCriterionIds
RETURN {entity: rc}
} AS decisionReplaceableCriteria