我有一个活动流项目列表,我希望将类似的项目组合在一起。例如,不应有 4 个条目说“Joe 喜欢你的快乐帖子”、“Sarah 喜欢你的快乐帖子”、“Bob 喜欢你的快乐帖子”、“Tom 喜欢你的快乐帖子”,而应该有一个说“Joe 、Sarah 和另外 2 人点赞了您的快乐帖子”。当项目被聚合时,聚合后的帖子将使用其部分的最新时间戳。
活动流不是无穷无尽的,仅包含过去一周的项目,因此所有符合名词(noun.activityType + noun.id)和动词属性的项目都应分组在一起。每个活动项目都有一个演员(谁做的)、目标(将它发布到谁的提要)、动词(演员做了什么)和名词(动词作用于什么对象)。
我已经把这个测试数据集放在 jsfiddle 上供你们玩:
{
"pts": 0,
"verb": "follow",
"target": "mike",
"actor": "test01",
"title": "test01 has started following you",
"published": "2012-06-04T22:34:01.914Z",
"_id": "4fcd37d9c7f1f40100000d7d",
"noun": {
"id": "mike",
"activityType": "profile",
"title": null
}
}
一种策略是在创建活动项时聚合服务器端,但我想探索在客户端使用下划线之类的库来执行此操作,看看它是否可行。