Neo4j,Cypher:以排序链表的形式连接图中的现有节点
我在以排序链表的形式连接数据库中的电影列表时遇到了一个问题(在单个密码查询中) 电影节点数:25LNeo4j,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,以创建两者
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))))