neo4j - 如何查找与X 相关的节点,并计算它们中有多少与你有关

  显示原文与译文双语对照的内容
0 0

我的数据库包含人员和事件作为节点。 个人可以:了解另一个人:创建或者:参加活动。

我希望收到所有事件。参加事件的人的列表和我知道的人的数量,以及我知道这个事件的人。

因此,我的结果应该如下所示:

事件| count(Attending) | 计数( FriendswhoAttend )

事件 9 3
事件B 3 0
事件C 0 0

我得到了事件和 count(Attending)

START me=node(1) 
MATCH (me)-[:KNOWS]-(creator)-[:CREATED]-(event), (Attender)-[?:ATTEND]-(event) 
RETURN event, count(Attender)

[?:ATTEND] 是可选的,因为它可以消除没有attenders的事件。

不过,我不知道如何查询有多少人参加了事件( 有多少朋友会在那里) 。

WITH n, event 
MATCH (n)-[:KNOWS]-(friend)-[:ATTEND]-(event)

拆分查询将给我几个相同事件的列表。

如何将带有Attenders的事件与正在参加的朋友一起包含在一个Resultset中?

时间:原作者:1个回答

0 0

在"attender"的集合中添加一个过滤器,以像这样获取朋友 attenders,

START me=node(1) 
MATCH (me)-[:KNOWS]-(creator)-[:CREATED]-(event), (Attender)-[?:ATTEND]-(event)
With event as e, collect(Attender) as attenders, me
Return e, length(attenders), length(filter(x in attenders where (me)-[:KNOWS]->x))
原作者:
...