【问题标题】:How can I get videos based on user genre?如何根据用户类型获取视频?
【发布时间】:2010-11-30 13:21:25
【问题描述】:

正如您在下面的定义中看到的那样。用户可以拥有一个或多个视频。一个用户可以有一个流派。

如何根据特定类型列出视频?

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  references_many :videos
  referenced_in :genre

  ....
end

class Video 
  include Mongoid::Document
  include Mongoid::Timestamps

  referenced_in :user
  ....
end

class Genre
  include Mongoid::Document

  references_one :user
  ....
end

【问题讨论】:

    标签: ruby-on-rails mongodb mongoid


    【解决方案1】:

    你需要做几个请求。

    list_your_want = Genre.all.inject({}) do |result, genre|
      result[genre.name] = genre.user.videos
      result
    end
    

    【讨论】:

    • 我不是想获得流派。我需要基于流派的视频
    • 您有一个哈希值,键为流派,值为该流派的视频列表。架构再好不过了
    • 您还会如何设计这种类型的架构?有什么建议吗?
    • 我真的不明白你在上面的代码 sn-p 中试图建议什么。在任何情况下,您的代码都会返回: undefined method `videos' for []:Array
    • 如果你有一些没有用户的类型,你之前有错误报告。如果您想修改您的架构,请在您的流派和视频之间添加一些链接,而无需用户抛出
    【解决方案2】:

    最后,我决定在文档上添加一个流派缓存列。这意味着我在用户集合和视频集合中有一个流派列

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 2012-12-07
      • 2019-09-08
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多