通过在许多节点上使用聚合“collect()”来给出集合,在特定属性或id之后排序,还是随机的顺序?我看过https://cloud.google.com/bigquery/loading-data,但没有找到任何帮助。
答案 0 :(得分:1)
这取决于你如何为你收集的东西建立路径。
您可以使用ORDER BY
确保元素已订购。例如:
// Don't specify order
MATCH (p:Crew)
RETURN COLLECT(p.name) AS people
> [Neo, Morpheus, Trinity, Cypher]
在上面的情况中,排序最终是根据内部节点id
,我们可以通过收集该值以及name属性来确认:
MATCH (p:Crew)
RETURN COLLECT({name: p.name, id: id(p)}) AS people
> [ {name:"Neo", id:0}, {name:"Morpheus", id:1}, {name:"Trinity", id:2}, {name:"Cypher", id:3}]
但我们可以使用ORDER BY
明确指定集合中元素的顺序:
// Order by name, ascending
MATCH (p:Crew)
WITH p ORDER BY p.name ASC
RETURN COLLECT(p.name) AS people
> [Cypher, Morpheus, Neo, Trinity]
这里有一个简单的例子:http://console.neo4j.org/r/bqxlmx