复杂的mongo查询!活跃的模型到mongoid

时间:2011-09-20 15:45:59

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

在我的rails 3应用程序中,我使用mongo和mongoid gem以及3个模型:(用户,友谊,帖子)。

我需要获取来自特定用户及其以下内容的所有帖子。 在传统的rails中,db将类似于:

Posts.find(:all, :conditions => ["user_id in (?)", friends.map(&:id).push(self.id)], :order => "created_at desc")

我怎么能在mongo中做到这一点?

实际上我不知道如何使用“map”和“push”之类的东西。

提前致谢!

1 个答案:

答案 0 :(得分:0)

得到http://mongoid.org/docs/querying.html

Posts.where(:user_id => your_user_id).first.friends

然后你可以对你想要的朋友做任何地图。

所以看看你的模特你可以做到:

 Post.all_in(:user_id => [your_user.id, your_user.friends.map(&:id)].flatten )

这将返回该用户及其朋友的所有帖子