代码之家  ›  专栏  ›  技术社区  ›  James111

如何将多个neo4j集合合并到1中?

  •  0
  • James111  · 技术社区  · 7 年前

    我的应用程序中有以下不同事件的集合,在我的查询和业务逻辑中有一些东西使我将不同类型的事件分为不同的集合:

    :User 返回,但只有1个可能有新的消息通知。

    友谊活动 : [ { id: 'friend_id', status: 'new_friend', otherNode: {} } ]

    WITH { event: newContactRequest, contactUser: contactUser } as contactEvents

    共同的朋友 : [ { id: 'mutual_id' status: 'new_mutual_friend_request', differentNode: {} } ]

    WITH { event: newMutualContactRequest, contactUser: mutualContactUser } as mutualContactEvents


    以上是我被退回的藏品。以下是我收集事件的方式:

    COLLECT(distinct contactEvents) as contactEvents, collect(distinct mutualContactEvents) as mutualContactEvents
    

    我该怎么办: return allActivitiesInTheOneList = contactEvents += mutualContactEvents (这样allActivitiesInTheOneList=两个合并的集合)

    有可能把最后的收藏品分类吗?我希望能够按创建日期对最终产品进行排序(这样事情就会按顺序显示)。

    或者我读对了你不能合并不同节点的集合 ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   InverseFalcon    7 年前

    当然有可能,你应该可以使用 + 两个集合之间的运算符:

    WITH COLLECT(distinct contactEvents) + collect(distinct mutualContactEvents) as allEvents
    ...
    

    如果您的最终列表是地图对象的列表 created_at apoc.coll.sortMaps() 从 APOC Procedures 做你的分类。