MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Je veux récupérer des valeurs insérées à une date particulière en utilisant _id de mongodb

S'il est vrai que l'ObjectId est en partie basé sur un "horodatage", il s'agit généralement d'une opération de bibliothèque "cliente" pour "extraire" cette date de la valeur de l'ObjectId.

Vous pouvez le faire avec l'évaluation JavaScript de $where , mais il devra "scanner" toute la collection, donc ce n'est pas très efficace :

 db.collection.find(function() {
     return (
        ( this._id.getTimestamp().valueOf() - 
          this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
        == new Date("2014-07-14").valueOf() );
 })

Cela comparera essentiellement pour voir si le ObjectId a été créé le même jour que la date indiquée. D'autres calculs de date ou méthodes s'appliquent à d'autres intervalles.