在Neo4j中,COLLECT用于查找节点的所有adjecent节点。如果我们想要在SORTED ORDER中一起找到节点的所有相邻节点,请提供。
我尝试了以下方法,但它没有用。
MATCH (ee:RECORD)-[:TAGGEDWITH]->(p:TAG)<-[:PARTOF]-(v:TAGTYPE)
RETURN p.tag_id as id,
COLLECT( DISTINCT ee.record_id) AS Records
ORDER BY ee.record_id, p.NAME AS name,
COUNT(*) AS n, v.NAME as group
答案 0 :(得分:4)
不,COLLECT
是一个与COUNT
或SUM
非常相似的聚合函数。
MATCH
用于查找相邻节点。
您可以使用带WITH
的中间ORDER BY
来对记录进行排序。
MATCH (ee:RECORD)-[:TAGGEDWITH]->(p:TAG)<-[:PARTOF]-(v:TAGTYPE)
WITH p, ee
ORDER BY ee.record_id
RETURN p.tag_id as id, p.NAME AS name, v.NAME as group,
COLLECT( DISTINCT ee.record_id) AS records,
COUNT(*) AS n
答案 1 :(得分:1)
我认为这应该更接近你想要实现的目标:
WITH [1,3,5,2,4] AS coll
UNWIND coll AS elems
WITH elems ORDER BY elems
RETURN COLLECT(elems);
// [1,2,3,4,5]
它做的是采取一个集合,展开它(“取消它”),订购它然后将它聚合回一个集合。我认为这个解决方案是一个相当丑陋的黑客,但它对我来说是一个解决方法。