代码之家  ›  专栏  ›  技术社区  ›  Vlad Zloteanu

MongoDB聚合数据以生成“最新活动”

  •  2
  • Vlad Zloteanu  · 技术社区  · 15 年前

    我有一个MongoDB集合,其中包含如下文档:

    [
      {
      :event => {:type => 'comment_created'}, 
      :item  => {:id => 10},
      :created_at => {:t => '11:19:03 +0100 2010', :d=> 'Fri, 19 Nov 2010'}
      }
    
    ,
      {
      :event => {:type => 'vote_created'}, 
      :item  => {:id => 10},
      :created_at => {:t => '11:19:03 +0100 2010', :d => 'Fri, 19 Nov 2010'}
      }
    ]
    

    我需要的是为每个项目构建一个“仪表板”,汇总最新活动(当天)。结果应该是:

    {
    :item_id => 10,
    :events => {
      :vote_created => [.. ordered list with latest 3 vote_created events/documents],
      :comment_created => [.. ordered list with latest 3 comment_created events/documents ],
      }
    }
    

    结果将用于构建“facebook风格”的语法,例如:“Mike、John和其他3人今天对您的项目添加了评论。”

    如何使用group或map reduce函数聚合此数据?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Gates VP    15 年前
    推荐文章