J'ai cette requête pour obtenir des résultats sur le mois. Mais je voulais obtenir les résultats d'aujourd'hui.
var start = new Date(2010, 11, 1);
var end = new Date(2010, 11, 30);
db.posts.find({created_on: {$gte: start, $lt: end}});
Quelle est la meilleure façon de procéder?
Votre objet de date de début doit contenir les heures de la date actuelle à 00:00:00.000
(Précision en millisecondes) et définir les heures de la date d'aujourd'hui sur 23:59:59.999
:
var start = new Date();
start.setHours(0,0,0,0);
var end = new Date();
end.setHours(23,59,59,999);
Passez ensuite les objets de date modifiés comme d'habitude dans votre opérateur de requête MongoDB:
db.posts.find({created_on: {$gte: start, $lt: end}});
Si vous utilisez la bibliothèque momentjs , cela peut être fait en utilisant la bibliothèque startOf()
et endOf()
méthodes sur l'objet date actuel du moment, en passant la chaîne 'day'
comme arguments:
var start = moment().startOf('day'); // set to 12:00 am today
var end = moment().endOf('day'); // set to 23:59 pm today