如何按时间段显示按日期计数的数据数量。根据MongoDB中的时间段获取数据
我们有槽
[{ '开始时间': “2017-04-20T08:30:00.000Z”, 'ENDTIME':“2017-04-20T09:30:00.000Z “},
{ '开始时间': “2017-04-20T09:30:00.000Z”, 'ENDTIME': “2017-04-20T10:30:00.000Z”},
{” startTime':“2017-04-20T10:30:00.000Z”, 'endTime':“2017-04-20T18:30:00.000Z”}]
输入
[{
"createdAt" : ISODate("2017-04-20T09:20:00.167Z"),
},
{
"createdAt" : ISODate("2017-04-20T14:20:00.167Z")
},
{
"createdAt" : ISODate("2017-04-20T11:20:00.167Z")
},
{
"createdAt" : ISODate("2017-04-20T14:20:00.167Z")
},
{
"createdAt" : ISODate("2017-04-20T12:20:00.167Z")
}]
要在这种格式显示数据
输出
[{ '开始时间':“2017-04-20T08:30:00.000 Z“, 'endTime':”2017-04-20T09:30:00.000Z“, 'count':1},
{ '开始时间': “2017-04-20T09:30:00.000Z”, 'ENDTIME': “2017-04-20T10:30:00.000Z”, '计数':0},
{ '开始时间': “2017-04-20T10:30:00.000Z”, 'ENDTIME': “2017-04-20T18:30:00.000Z”}, '计数':4]
**有没有使用循环任何其他方法** .suppose我们有10的20倍插槽,那么你必须重复10〜20次根据时隙循环查询,并在数据库中查询10-20次。 –
我不这么认为。查询只能使用1 $ gte/$ gtand 1 $ lte/$ lt,它可以只有1个值。所以它将不得不循环运行。如果您担心以同步方式运行它们,那么可以并行运行它们,检查名为async的npm模块 - https://caolan.github.io/async/ –