gpt4 book ai didi

neo4j - 在列表的连续元素之间创建关系

转载 作者:行者123 更新时间:2023-12-02 01:30:54 24 4
gpt4 key购买 nike

我正在尝试用 neo4j 密码语言编写一个查询,它创建一个节点关系链,按特定条件排序。

例如。我有这个查询:

MATCH (n)
WHERE n.some_property = 'something'
WITH n
ORDER BY n.some_other_property
WITH collect(n) as node_list

我需要将 node_list 的每个元素与该列表的下一个元素链接起来。

例如,如果 node_list 包含:

[a, b, c, d, e]

结果将是:创建 (a)->[:rel]->(b)->[:rel]->(c)->[:rel]->(d)->[:rel]->(e )

所以最终的查询将是:

MATCH (n)
WHERE n.some_property = 'something'
WITH n
ORDER BY n.some_other_property
WITH collect(n) as node_list
CREATE LINKS OF CONSECUTIVE node_list

有什么办法吗?

最佳答案

是的!拥有收藏后,使用 UNWIND 获取一系列索引:

MATCH (n)
WHERE n.some_property = 'something'
WITH n
ORDER BY n.some_other_property
WITH COLLECT(n) as node_list
UNWIND RANGE(1, SIZE(node_list) - 1) AS idx
WITH node_list[idx - 1] AS from, node_list[idx] AS to
CREATE (from)-[:NEXT]->(to);

关于neo4j - 在列表的连续元素之间创建关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34241153/

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