Requête pour une date spécifique avec MongoDB et NodeJS

Dans une collection MongoDB, j’ai un object Date qui enregistre la date et l’heure d’un événement. J’essaie d’interroger en fonction d’une date précise et d’ignorer l’heure, par exemple, de me montrer tous les événements d’aujourd’hui.

Model.js

var EventSchema = new Schema({ eventName : Ssortingng, eventDate : Date, eventLocation : Ssortingng, eventLocationGeo : Ssortingng, eventCreator : ObjectId }); 

Mon application principale.js recherche la date au format Unix Timestamp.

 //Get Events based on Unix Time Stamp Date app.get('/events/date/:date', passportConf.isAuthenticated, function(req, res){ var user = req.user._id; var date = req.params.date; console.log('date - ' + date); eventController.getEventsByDate(user, date, req, res); }); 

Appel REST typique

  http://localhost/events/date/1410764400 

La plupart des articles de référence font référence à $ gte et $ lt, mais il n’existe aucune mention de la suppression de l’heure; mes requêtes aboutissent donc 24 heures sur 24 en fonction de la date ET de la date complète.

Je recommanderais d’utiliser moment.unix(req.params.date).startOf('day').toDate() et moment.unix(req.params.date).endOf('day').toDate() partir du moment La bibliothèque .js , qui est extrêmement utile.

Avec seulement ECMAScript Date, vous pouvez faire:

 var start = new Date(req.params.date); start.setHours(0); start.setMinutes(0); start.setSeconds(0); start.setMilliseconds(0);