Comment afficher le nombre de données de comptage par date et heure par intervalles de temps.Récupère les données en fonction du créneau temporel dans MongoDB
nous avons fentes
[{ 'startTime': "2017-04-20T08: 30: 00.000Z", 'endTime': « 2017-04-20T09: 30: 00.000Z « },
{ 'startTime': "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"}}
Entrée
[{
"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")
}]
Pour afficher les données dans ce format
sortie
[{ 'startTime': « 2017-04-20T08: 30: 00.000 Z ", 'endTime':" 2017-04-20T09: 30: 00.000Z ", 'compter': 1},
{ 'startTime': "2017-04-20T09: 30: 00.000Z", 'endTime': "2017-04-20T10: 30: 00.000Z", 'count': 0},
{ 'startTime': "2017-04-20T10: 30: 00.000Z", 'endTime': "2017-04-20T18: 30: 00.000Z"}, 'count': 4]
** Y at-il une autre méthode sans utiliser la boucle ** .suppose nous avons 10 à 20 fois slots alors vous devez itérer 10 -20 fois boucle en fonction des créneaux horaires et la requête va frapper 10 à 20 fois dans la base de données. –
Je ne pense pas. La requête ne peut prendre que 1 $ gte/$ gtand 1 $ lte/$ lt qui ne peut avoir qu'une seule valeur. Donc, il faudra courir en boucle. Si vous êtes inquiet de les exécuter de manière synchrone, alors vous pouvez les exécuter en parallèle, Vérifiez le module npm appelé async - https://caolan.github.io/async/ –