我有一个非常标准的graphql,它表示一个树形结构:
我想进行一次图遍历,并根据我在每条边上设置的order
强制排序:
一个-> C
A -> B -> E
A -> B -> D
我试图在我的查询上添加一个排序,但它对整个结果数组进行排序,这并不是我想要的:
FOR v, e, p IN 1..1000 OUTBOUND A
edge_collec
SORT e.order
RETURN v
有没有办法使用AQL做到这一点?
发布于 2018-12-06 04:37:16
查询的作用是:
从起始折点开始按边属性以升序对边集合中的所有传出边进行排序A
order
edge_collec
边属性e.order
为0或1:
A --[ order: 1 ]--> B
A --[ order: 0 ]--> C
B --[ order: 1 ]--> D
B --[ order: 0 ]--> E
按order
排序将在返回B和D (1)之前返回C和E (0)。因为两条边具有相同的值,所以不确定首先返回C还是E,以及第三次返回B还是D。
如果希望深度=1处的顶点在深度= 2处的顶点之前返回,但在每个深度级别上仍按order
排序,则可以使用:
SORT LENGTH(p.edges), e.order
LENGTH(p.edges)
提供了当前遍历的深度。它首先按深度排序,然后按边缘属性排序,并为您提供所需的结果顺序:C B E D
https://stackoverflow.com/questions/53503260
复制相似问题