我有一个集合,我在一家有时间戳的公司进行销售。 我需要获取数据,使其每小时使用group by,即凌晨1点,凌晨2点....
{
"_id" : 1,
"billNo" : "000000001",
"dateTime" : ISODate("2017-11-16T14:16:00.201Z"),
"grossAmount" : 1000
}
{
"_id" : 2,
"billNo" : "000000002",
"dateTime" : ISODate("2017-11-15T12:16:00.201Z"),
"grossAmount" : 10000,
}
{
"_id" : 3,
"billNo" : "000000003",
"dateTime" : ISODate("2017-11-14T11:16:00.201Z"),
"grossAmount" : 10000,
}
我需要像
这样的输出 {_id:1am,count:0, grossAmount: 0}
{_id:2am, count:1,grossAmount: 1000}
{_id:3am,count:1, grossAmount: 2000}
即使计数为0,我也需要24小时。这里总金额是特定小时的总安装量之和。 是否可以在mongodb查询中执行,或者我需要在从mongodb获取后在我的节点中工作。
答案 0 :(得分:0)
db.test.aggregate({ “$组”:{ “_ ID”:{ “$小时”: “$日期时间”},计数:{$总和: “$计数”},grossAmount:{$总和: “$ grossAmount”}}})
试试这个