getstream.io:Notification feed的activity_count与actor_count是否返回聚合活动总数?
Notification Feed中activity_count与actor_count的计数逻辑说明
首先得明确:Notification Feed和Aggregated Feed的计数逻辑是完全不同的,这也是为什么你看到两个文档的说明不一样。
先理清两者的核心差异
- 对于**Aggregated Feed(聚合流)**来说,它的核心功能就是把相似的活动(比如多个用户给同一条内容点赞)合并成一条聚合记录。所以文档里提到“actor和object计数会超过15”是它的设计预期——聚合后的记录里,
actor_count会返回参与该类活动的总用户数,activity_count会返回这类活动的总数量,哪怕数值超过15也会如实返回。 - 但**Notification Feed(通知流)**的默认逻辑并不是自动聚合活动。它的初衷是给用户推送需要及时关注的单条通知,所以如果没有额外配置聚合规则,每条插入的活动都会作为独立条目存在。这时候你插入20条不同actor的点赞活动,读取流时每条记录的
activity_count和actor_count都会是1,而不是20这个总数。
如何让Notification Feed返回聚合总数?
如果你希望在Notification Feed里也实现类似聚合流的计数效果(比如显示“20人点赞了你的内容”),需要手动为你的通知流配置聚合策略:
- 定义聚合的规则(比如按活动类型、目标内容ID来分组)
- 配置后,系统会自动将符合规则的活动合并成一条聚合记录,此时这条记录的
activity_count就是总活动数,actor_count就是参与的总actor数,这时候就会出现超过15的情况,和聚合流的逻辑一致。
总结
- 默认情况下,Notification Feed不会返回聚合后的总数,每条活动的计数都是1;
- 只有当你为Notification Feed配置了合适的聚合规则后,
activity_count和actor_count才会返回该组聚合活动的总数量; - 聚合流文档里的说明不适用于默认状态的Notification Feed,这也是为什么该说明没有出现在通知流文档中。
内容的提问来源于stack exchange,提问作者Ricardo Silva
相关产品推荐
相关产品推荐

