1

我正在使用 Redisgraph。我有两种节点类型,DriverRace,从 Driver 到 Race 的关系称为racedAt。我知道,如果我查询:

MATCH (r:Race)<-[p:racedAt]-(d:Driver)
RETURN r,p

这会返回我 n 次相同的比赛,其中 n 是车手的数量。为了解决这个问题,我使用:

MATCH (r:Race)<-[p:racedAt]-(d:Driver)
RETURN r, collect(p) as p

_values[0]中有一个Race ,在_values [1]中有一个RacedAt 。

让我们假设 racedAt 关系有一个属性position;我该怎么做才能按内部属性位置对 _values[1] 数组进行排序?

我得到的结果:

_values[0]: { name: 'Monza' }
_values[1]: [ { driver: 'Hamilton', position: '2'}, { driver: 'Verstappen', position: '1'} ]

我想要的结果:

_values[0]: { name: 'Monza' }
_values[1]: [ { driver: 'Verstappen', position: '1'}, { driver: 'Hamilton', position: '2'} ]

谢谢!

4

1 回答 1

2

ORDER BY在收集结果之前使用:

MATCH (r:Race)<-[p:racedAt]-(d:Driver)
WITH r, p
ORDER BY p.position
RETURN r, collect(p) AS p
于 2022-01-31T12:54:01.390 回答