2013-04-22 58 views
0

我一直在我的最新项目中使用Mongoid和Devise。到目前为止,这很棒。Mongoid +设计每日注册

我想根据created_at日期来计算每天用户注册的数量。

我知道,在mongoDB中它没有像关系数据库那样的传统组,并且使用Map/Reduce进行这样的查询。

我可以通过在一系列日期中使用纯ruby和循环来做到这一点,但真的想要使用MongoDB中的聚合框架来生成这些信息,但这样做有点麻烦。

任何人都可以给我一个例子,说明如何使用基于日期创建的map缩减来获得Mongoid文档数量?

由于

托尼

+0

它确实有一个组:http://docs.mongodb.org/manual/reference/aggregation/group/#stage._S_group – Sammaye 2013-04-22 17:08:51

+0

感谢您的这一点,但我有一些麻烦figurin如何使用按天分组。你能帮忙吗? – 2013-04-23 04:01:28

+0

我只知道如何做到这一点在控制台不红宝石,如果你要给你的架构,我可以写一个控制台回答 – Sammaye 2013-04-23 06:59:42

回答

0

我有a blog post描述如何使用聚合框架由天(或日期时间字段的任何其他截断)基团。

你需要做的简而言之就是使用$ project stage将你的created_at字段转换为“日期”值(或反映特定日期的午夜的值),然后$日期为_id的日期组做{$ sum:1}来获得用户数。

+0

太棒了。我从你的例子中得到了它。太感谢了!! – 2013-04-25 10:35:27