结合mongodb的条件

时间:2011-02-02 16:46:59

标签: ruby-on-rails ruby-on-rails-3 mongodb

我正在尝试查找用户或他的朋友发布的所有帖子......

到目前为止我有这个

Activity.any_of({"user_id" => 1}, {"for_id" => 1}, {"comments.user_id" => 1})

现在,我如何添加这些条件,即user_id可以是任何一个用户的人......将会做这项工作吗?

Activity.any_of({"user_id" => 1}, {"for_id" => 1}, {"comments.user_id" => 1}).any_in("user_in" => [1,2])

1 个答案:

答案 0 :(得分:1)

不确定如何在rails中执行此操作,但您要查找的查询是:

db.posts.find({$or:[{user_id:1}, {user_id:{$in:[friend_id1, friend_id2,.. friend_idn]}}]})

或者稍微简单一点,将您的用户ID和朋友用户ID合并到一个列表中并执行

db.posts.find({user_id:{$in:[user_id, friend_id1, friend_id2,.. friend_idn]}})