gpt4 book ai didi

neo4j - Neo4j Cypher 查询中的 FOREACH 后无法返回节点

转载 作者:行者123 更新时间:2023-12-01 12:18:16 26 4
gpt4 key购买 nike

我们正在创建一个时间树,这里的查询有效:

CREATE (c:Century {century_label: 2000})
MATCH (c:Century {century_label: 2000})
WITH range(1900,1905) as YEARS, c
FOREACH (year in YEARS | CREATE (y:Year {year_label:year})-[r:YEAR_IN]->(c))

这个没有:

CREATE (c:Century {century_label: 2000})
MATCH (c:Century {century_label: 2000})
WITH range(1900,1905) as YEARS, c
FOREACH (year in YEARS | CREATE (y:Year {year_label:year})-[r:YEAR_IN]->(c))
RETURN y as YEAR

问题是 y as YEAR,Neo4j 会抛出关于 y 的错误,所以看起来你不能执行 FOREACH 然后收集之后的结果。

返回所有已创建节点的正确语法是什么?

最佳答案

我从 Neo4j Slack 得到了答案:

MATCH (c:Century {century_label:$century})
UNWIND range(1900,1999) as year
CREATE (y:Year {year_label:year})-[r:YEAR_IN]->(c)
RETURN y AS YEAR

同样根据我的阅读,我相信这个 UNWIND 是其中一些更陈旧的查询的后继者。我强烈建议尽可能多地放松。

到目前为止,我们在所有测试案例中看到了它的最佳性能。

关于neo4j - Neo4j Cypher 查询中的 FOREACH 后无法返回节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46535533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com