在我的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”之类的东西。
提前致谢!
答案 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 )
这将返回该用户及其朋友的所有帖子