Neo4j Cypher:通过与另一个节点的关系对节点进行分组

Dar*_*gun 3 neo4j cypher

有了这样的图表post-->category,我怎样才能为每个类别分配一个帖子?

即:

Having
    Post A1 --> Category A
    Post A2 --> Category A
    Post B1 --> Category B
    Post B2 --> Category B
    Post B3 --> Category B
    Post C1 --> Category C

I should get Post A2, Post B1, Post C1. 
Run Code Online (Sandbox Code Playgroud)

我不介意给出一个给定类别的帖子,只为每个类别获得一个.

谢谢!

Ste*_*ter 10

要随机选择每个类别的帖子:

MATCH (p:Post)-[:HAS_CATEGORY]->(c:Category)
WITH c, collect(p) as posts
RETURN c, posts[toInt(rand()*length(posts))]
Run Code Online (Sandbox Code Playgroud)

我们使用collect每个类别的聚合函数,在返回中我们随机选择一个条目.