刚开始使用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")
}
答案 0 :(得分:1)
您可以添加更多日期列或删除它们以获得不同的分组:
db.col.aggregate(
{ $group: {
_id: {
status: "$status",
month: { $month: "$datetime" },
day: { $dayOfYear: "$datetime" },
year: { $year: "$datetime" }
},
hits: { $sum: "$hits" }
} }
)
这意味着:对于在特定日期出现的每个独特状态(忽略时间),总结所有命中。