首页 > 解决方案 > 根据节点属性创建订单关系

问题描述

我是 Neo4j 的新手,我创建了一些使用名为“order”的属性的节点。我想在每对节点之间创建一个关系,尊重“order”属性所暗示的顺序,但我不知道如何。

例子 :

(:node { order: 2 }), (:node { order: 4 }), (:node { order: 1 })

会给:

(:node { order: 1 })->(:node { order: 2 })->(:node {order: 4)

// 这不是 Neo4j 的语法,这只是为了让我的问题清楚。

提前,非常感谢你:)

标签: neo4jcypher

解决方案


此查询应按顺序创建node节点链order(使用NEXT关系):

MATCH (n:node)
WITH n
ORDER BY n.order
WITH COLLECT(n) AS ns
UNWIND RANGE(0, SIZE(ns)-2) AS i
WITH ns[i] AS a, ns[i+1] AS b
CREATE (a)-[:NEXT]->(b)

推荐阅读