Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j,Cypher:以排序链表的形式连接图中的现有节点_Neo4j_Cypher - Fatal编程技术网

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

Neo4j,Cypher:以排序链表的形式连接图中的现有节点,neo4j,cypher,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 这将需要引用前一个节点PREV_MOVIE和FOREACH中的当前节点n,以创建两者

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

电影节点数: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

这将需要引用前一个节点
PREV_MOVIE
FOREACH
中的当前节点
n
,以创建两者之间的关系。如何在此处找到对上一个节点的引用,或者是否有其他方法可以这样做?

在Neo4j文档的教程部分有一个链表章节,可能会帮助您:


在Neo4j文档的教程部分,有一个链表章节,可能会帮助您:


您需要为每个人应用一些
魔法:

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))))

您需要应用一些
FOREACH
magic:

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))))