Neo4j Cypher:按与另一个节点的关系对节点进行分组
Neo4j Cypher: Group nodes by the relation to another node
有一个像 post-->category
这样的图表,我怎样才能为每个类别得到一个 post?
即:
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.
我不介意 post 我为给定的类别获得什么,只是为每个类别获得一个。
谢谢!
每个类别随机选择 post 个:
MATCH (p:Post)-[:HAS_CATEGORY]->(c:Category)
WITH c, collect(p) as posts
RETURN c, posts[toInt(rand()*length(posts))]
我们对每个类别使用 collect
聚合函数,在 return 中我们随机选择一个条目。
有一个像 post-->category
这样的图表,我怎样才能为每个类别得到一个 post?
即:
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.
我不介意 post 我为给定的类别获得什么,只是为每个类别获得一个。
谢谢!
每个类别随机选择 post 个:
MATCH (p:Post)-[:HAS_CATEGORY]->(c:Category)
WITH c, collect(p) as posts
RETURN c, posts[toInt(rand()*length(posts))]
我们对每个类别使用 collect
聚合函数,在 return 中我们随机选择一个条目。