web-dev-qa-db-fra.com

Mongodb trouve les résultats créés par date aujourd'hui

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?

20
Rex Adrivan

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
49
chridam