Apprendre Les Commandes Essentielles De MongoDB

JS oblige, les dates sont un peu à part entière. Dans la mesure où nous avons souvent besoin de les traiter, faisons rapidement le tour du propriétaire !

Lorsque l'on veut requêter une date dans Mongo, il faut créer un objet de type Date. Cela se fait soit directement via le constructeur Date de JavaScript, soit via le wrapper Mongo ISODate.

La fonction Date() appelée sans new retourne simplement la date courante en tant que chaîne de caractères. Les autres formes, c'est-à-dire new Date(xxx), new ISODate(xxx) et ISODate(xxx) sont équivalentes et font toutes appel au wrapper ISODate. Il ne s'agit donc que d'une question de préférence personnelle.

Maintenant que nous avons levé l'ambiguïté qu'il peut y avoir entre ces différentes méthodes, utilisons-les. Pour l'exemple, nous allons récupérer les utilisateurs créés depuis le 15 septembre 2015.

Sélectionnezdb.users.find({ signupDate: { $gte: ISODate("2015-09-15") } })

Évidemment, qui dit date, dit aussi heure. Franchissons le cap de la précision, les utilisateurs qui se sont enregistrés après le 15 septembre 2015 à 13h20.

Sélectionnezdb.users.find({ signupDate: { $gte: ISODate("2015-09-15T13:20:00.000Z") } })

Vous vous apercevez certainement que la précision va jusqu'à la milliseconde… En effet, le moteur de Mongo stocke et traite les dates en nombre de millisecondes depuis l'époque Unix (sous la forme d'un entier de 64 bits, si ça vous intéresse). Nous héritons donc de la précision de ce format.

Vous notez peut-être également que deux lettres viennent s'ajouter à notre équation. Le T vient simplement faire office de séparateur et indique Time, tandis que le Z signifie que nous traitons du temps en Zulu Time [en], autrement dit, l'heure UTC.

La présence ou l'absence du Z est importante. Mongo stocke dans tous les cas la date au format UTC. Cependant, si vous omettez le Z, Mongo considère qu'il s'agit du fuseau horaire courant, donc UTC+1 si vous êtes sur le fuseau horaire de Paris, ou plus généralement CET (Central European Time), autrement dit l'heure d'Europe centrale.

Vous le comprenez, en l'absence du Z, Mongo fera l'opération pour ajouter ou retrancher des heures à UTC avant de la stocker, tandis que si vous le précisez, il stocke tel quel.

Tag » Apprendre Mongodb