【问题标题】:Should dates be an embedded document?日期应该是嵌入文档吗?
【发布时间】:2013-05-10 06:56:50
【问题描述】:

我正在使用 Mongoid 3。我有一个视频模型。 dates 应该是嵌入文档还是 Array 类型?

如果我有这个结构:

{
      :id => 2,
      :dates => [
        {
          :date => Time.now.strftime('%Y%m%d').to_i,
          :views => {
            :non_uniques => 1,
            :uniques => 1,
            :countries => {
              :us => 1,
              :uk => 1
            }
          },
          :likes => 1,
          :comments => 1,
        }
      ]
}

另外,views、countries 应该是嵌入文档吗?

【问题讨论】:

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


    【解决方案1】:

    当您计划使用日期捕获附加信息时,我认为您当前的架构是正确的。还需要考虑一个方面,即您将如何使用数据或查询。如果您想查看特定日期的视频的总观看次数和喜欢次数,我认为您的方法是正确的,但是如果您要显示整体喜欢和观看次数而不是每天,那么数组会更好。从 NoSQL 和嵌入式文档的意义上说,您所做的通常是正确的,但最后这一切都取决于您想要查询的内容。在这里,您阅读每日统计数据会非常快。

    【讨论】:

    • 那么dates、views 和countries 将是单独的模型吗?即video ebeds_many dates、dates embeds_many views、views embeds_many countries?听起来对吗?
    • 是的,没关系,正如我所说,如果您的查询大部分时间都显示包含所有这些信息的视频。即使您可以拥有更多的收藏集,例如国家,以​​防您想为其他视图保留有关该国家/地区的更多详细信息,但如果您只想显示国家/地区名称,则在视频文档中仅保留国家/地区的名称.
    猜你喜欢
    • 2012-02-01
    • 2013-05-17
    • 2011-11-19
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    相关资源
    最近更新 更多