Neo4j,Cypher:以排序链表的形式连接图中的现有节点

red*_*vil 1 neo4j cypher

我有一个问题是以排序链表的形式(在单个密码查询中)连接数据库中的电影列表.

电影节点数:25L

MATCH (movie:Movie)
WITH movie
ORDER BY movie.rating DESC
WITH collect(movie) as p
FOREACH (n IN nodes(p)| CREATE PREV_MOVIE-[:NextMovie]->(n) )
RETURN p
Run Code Online (Sandbox Code Playgroud)

这将需要参考以前的节点PREV_MOVIE和当前节点nFOREACH建立两者之间的关系.如何在这里找到对前一个节点的引用PREV_MOVIE,或者还有其他方法可以做同样的事情吗?

Ste*_*ter 6

你需要应用一些FOREACH魔法:

MATCH (movie:Movie)
WITH movie
ORDER BY movie.rating DESC
WITH collect(movie) as p
FOREACH(i in RANGE(0, length(p)-2) | 
  FOREACH(p1 in [p[i]] | 
    FOREACH(p2 in [p[i+1]] | 
      CREATE UNIQUE (p1)-[:PREV_MOVIE]->(p2))))
Run Code Online (Sandbox Code Playgroud)