【问题标题】:Sort based on collect value in neo4j根据 neo4j 中的收集值排序
【发布时间】:2022-11-23 23:04:07
【问题描述】:

我有这个查询MATCH (r:Class {Name: 'A'})-[perm]->(res:source) RETURN res.Name AS resource, collect(type(perm)) AS permission ORDER BY resource

它返回给我这样的回复

"AB sources",
      [
        "D",
        "C",
        "A",
        "B"
      ]

我想要的是这个 D C A B 应该像 A B C D

我尝试通过 order by for perm 但这给出了错误。我怎样才能做到这一点?

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    您必须使用 APOC 库对集合进行排序:

    MATCH (r:Class {Name: 'A'})-[perm]->(res:source) 
    WITH res.Name AS resource, collect(type(perm)) AS permission
    RETURN resource, apoc.coll.sort(permission) AS permission
    ORDER BY resource
    

    【讨论】:

    • 这确实是排序权限,但现在我丢失了资源的排序顺序都可以排序吗?
    • 是的。更新了@vatsaljain 的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 2016-11-30
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    相关资源
    最近更新 更多