sql >> Base de Datos >  >> NoSQL >> MongoDB

Quiero recuperar valores insertados en una fecha particular usando _id de mongodb

Si bien es cierto que ObjectId se basa en parte en una "marca de tiempo", generalmente se trata de una operación de biblioteca "cliente" para "extraer" esta fecha del valor de ObjectId.

Puede hacer esto con la evaluación de JavaScript de $where , pero necesitará "escanear" toda la colección, por lo que no es muy eficiente:

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

Eso básicamente comparará para ver si el ObjectId se creó el mismo día que la fecha proporcionada. Otras matemáticas o métodos de fecha se aplican a otros intervalos.