【发布时间】:2018-08-09 06:58:10
【问题描述】:
有没有办法在 MongoDB 的日期范围内获取每小时平均 tickets 计数?
这是我的记录示例:
{
"_id" : ObjectId("5a8e2f423c2df300143de0f8"),
"ticket_number" : 58,
"name" : "Test Name",
"fb_id" : "1777532692279135",
"inquiry" : "sample",
"inquiry_date" : ISODate("2018-02-22T02:47:30.272Z"),
"status" : "CLOSED",
"__v" : 0,
"assessment" : " sample",
"assessed_by_name" : "Test Admin",
"assessment_date" : "2018-02-22T02:48:17+00:00"
}
这是我每小时计算门票的代码,但它似乎不起作用:
db.tickets.aggregate(
{$match:{inquiry_date:{$gte: ISODate("2018-01-01T03:20:42.079Z"), $lt: ISODate("2018-04-25T03:20:42.079Z")}}},
{$group:{ _id : { ticket_number: "$ticket_number", inquiry_date: "$hour" }, perHour: {$sum: "$count"} } },
{$sort:{perHour:-1}}
)
希望有人可以在这方面帮助我。谢谢!
【问题讨论】:
-
你想要什么样的输出?
-
只有_id(这是强制性的)和平均@AnthonyWinzlet
-
试试
{$group:{ _id : { ticket_number: "$ticket_number", inquiry_hour: {"$hour": "$inquiry_date"}}, perHour: {$sum: "$count"} } }, -
perHour 似乎对我不起作用。还有其他方法可以每小时计算门票吗?我试过
perHour: { $sum:1 }@Veeram -
我不明白为什么它不起作用。您是否包含
inquiry_hour: {"$hour": "$inquiry_date"}部分?
标签: database mongodb mongodb-query aggregation-framework aggregate