使用MongoDB制作类似Twitter的时间表

pt2*_*ph8 9 database-design mongodb

我需要的:

假设您正在使用MongoDB,并且您有一个名为的集合users,并且每个用户都有一个"跟随"数组,其中包含_id他所关注人员的用户.然后你有另一个集合statuses,每个集合包含_id其作者的状态.如何向某个用户显示他所关注的人添加的所有状态?

我尝试了什么:

我把_id当前用户所关注的所有用户放在一个数组中(我正在使用PHP),然后我用它来查找那些用户使用的所有状态$in.

问题:

这是最好的解决方案吗?

Sin*_*nan 3

我也看不到任何其他方法,我以前实现过这样的事情并且没有问题。

在你的情况下,它应该是这样的,你将某些用户的$follower_ids数组作为参数传递给你的函数:

$query  = array("status_owner_id" => array('$in' => $follower_ids));
$cursor = $mongo->yourdb->statuses->find($query);
Run Code Online (Sandbox Code Playgroud)

如果你根据 Owner_id 索引状态(如果你有足够的内存来这样做),你会很快得到结果。

希望有帮助,思南。