【问题标题】:Complicated mongo query! Active model to mongoid复杂的mongo查询!活动模型到 mongoid
【发布时间】:2011-09-20 15:45:58
【问题描述】:

在我的 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”之类的东西。

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    转到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 )
    

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

    【讨论】:

    • 你能解释一下.friends是什么意思吗?
    • 我可能会错过阅读您的模型之间的关系可以粘贴它们吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    相关资源
    最近更新 更多