2011-02-02 6 views
0

Je suis en train de trouver tous les messages postés par un utilisateur ou ses frnds ...combinant conditions dans MongoDB

i ont jusqu'à présent cette

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

maintenant, comment puis-je ajouter à ces condition cet id_utilisateur peut être par n'importe qui qui est un frnd d'utilisateur ... fera ce travail?

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

Répondre

1

Je ne sais pas comment le faire dans des rails mais la requête que vous cherchez est soit:

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

Ou un peu plus facile, combiner votre nom d'utilisateur et votre utilisateur ami ids en une seule liste et faire

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