【发布时间】:2015-09-16 14:47:37
【问题描述】:
我们如何在 mongodb 中实现类似 Facebook 的状态消息系统(使用 mongoose),每当任何给定用户发布他的状态时,它都会在他所有朋友的时间轴上广播。
它不一定是实时的,会有一个刷新按钮来获取最新的状态。
这是我想出的:
A 计划:
status(collection)
id, user_id(reference), status_msg
好处:写入速度更快
B 计划:
status(collection)
id, user_id(reference), status_msg, friends_list[sub-document]
好处:读取速度更快
使用计划 A,我必须遍历用户在其好友列表中的所有好友,然后获取所有状态。 我每次都必须为每个朋友这样做(页面刷新/新登录)。
使用计划 B,我只需获取当前用户在 friends_list 中的状态。
我想知道您对此的意见和建议?
有没有更好的方法来解决这个问题?
我也想知道如何在这里使用rabbitMQ来提高效率并减少不必要的db i/o。
【问题讨论】:
标签: node.js mongodb mongoose rabbitmq