MongoDB初学者 - 按日期分组

时间:2014-01-18 21:35:50

标签: mongodb

刚开始使用mongodb并使用此帖子进行类似查询,但我需要实际日期,例如mm / dd / yyyy,而不仅仅是一年中的某一天 - 帮助!

How to group by multiple fields in MongoDB when one is a date field

这是我的查询(几乎与上面的帖子相同):

db.col.aggregate(
    { $group: { 
        _id: { 
            status: "$status", 
            dayOfYear: { $dayOfYear: "$datetime" }
        },
        hits: { $sum: "$hits" } 
    } }
)

以下是示例数据:

{
    "_id" : ObjectId("45f5ed29f4e1a522bfe53f13"),
    "hits" : 2,
    "status" : 400,
    "datetime" : ISODate("2014-01-10T10:17:57.216Z")
}

1 个答案:

答案 0 :(得分:1)

您可以添加更多日期列或删除它们以获得不同的分组:

db.col.aggregate(
    { $group: { 
        _id: { 
            status: "$status", 
            month: { $month: "$datetime" },
            day: { $dayOfYear: "$datetime" },
            year: { $year: "$datetime" }
        },
        hits: { $sum: "$hits" } 
    } }
)

这意味着:对于在特定日期出现的每个独特状态(忽略时间),总结所有命中。