Neo4j Cypher 模式理解 return 语句中

问题描述 投票:0回答:1

我需要将以下模式理解添加到我的 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 cypher
1个回答
0
投票

如果您使用的是 Neo4j 5.6+,则可以使用 COLLECT 子查询。这是一个示例片段:

...
RETURN COLLECT {
    MATCH (rc:Criterion)
    WHERE rc.id IN childD.replaceableCriterionIds
    RETURN {entity: rc}
} AS decisionReplaceableCriteria
© www.soinside.com 2019 - 2024. All rights reserved.