0
通過在許多節點上使用聚合「collect()」,在特定屬性或ID之後進行排序,或者是隨機順序而給出的集合?我看過documentation,但沒有找到有用的東西。根據什麼屬性收集()排序它的輸出?
通過在許多節點上使用聚合「collect()」,在特定屬性或ID之後進行排序,或者是隨機順序而給出的集合?我看過documentation,但沒有找到有用的東西。根據什麼屬性收集()排序它的輸出?
這取決於你如何建立你正在收集的路徑。
您可以使用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