在CYPHER中对列表进行排序

时间:2018-04-06 22:58:11

标签: neo4j cypher

我们应该如何对cypher中的元组列表进行排序。

MATCH (n) 
WHERE EXISTS(n.docId)
WITH COLLECT(DISTINCT [n.docId,n.senId]) as docs ORDER BY docs[0]
RETURN docs

以上查询返回:

[[848613, 1], [848613, 2], [848514, 1], [90029, 2], [848681, 1], [575833, 2], [847627, 1], [849538, 2]]

实现此排序结果的有效方法是什么:

[[90029, 2],[849538, 2],[848681, 1],[848613, 1],[848613, 2],[848514, 1],[847627, 1],[575833, 2]]

2 个答案:

答案 0 :(得分:1)

我试着找出答案:

MATCH (n)
WHERE EXISTS(n.docId)
WITH DISTINCT [n.docId,n.senId] as  ds ORDER BY ds[0],ds[1]
  WITH COLLECT(ds) as docs 
    RETURN docs

答案 1 :(得分:1)

这是@ sus的答案的简单形式:

MATCH (n)
WHERE EXISTS(n.docId)
WITH DISTINCT [n.docId, n.senId] as ds ORDER BY ds
RETURN COLLECT(ds) as docs