我在 mongodb 中实现了一个通知系统。基本上我创建通知项目并订阅用户。之后,如果通知项上发生任何操作,我只需将它们记录在操作文档中,这样我就可以查询用户关于操作集合的通知。到目前为止,一切都很好。
现在我只想按它们的类型和通知项对操作进行分组,并按最新的操作时间对结果进行排序(比如说关注、评论等)。所以我可以像“约翰、丽莎和其他 3 个像你的 bla bla”这样的总结
为了成功,我在 mongodb 上实现了 mapreduce。它也在工作。但问题是它看起来不正确;
因为 mapreduce 生成一个集合作为输出。在这种情况下;
User1 登录,mapreduce 运行生成通知集合,然后 User2 登录,mapreduce 运行生成具有相同名称的通知集合(已为另一个用户创建)。
我很好奇如果多个用户同时触发 mapreduce 会发生什么?(这很有可能,它是一个社交网络)
我想也许我可以为每个用户创建独特的通知集合notification_$userid
.. 对于 1M 用户来说,1M 集合听起来不对?
顺便说一句,我从 MongoDB 分组开始,但更改为 mapreduce,因为我想对结果集进行排序。
谢谢你。