MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Eu quero recuperar valores inseridos em determinada data usando _id do mongodb


Embora seja verdade que o ObjectId é baseado em um "timestamp" em parte, geralmente essa é uma operação de biblioteca "cliente" para "extrair" essa data do valor do ObjectId.

Você pode fazer isso com a avaliação JavaScript de $where , mas precisará "varrer" toda a coleção, portanto não é muito eficiente:
 db.collection.find(function() {
     return (
        ( this._id.getTimestamp().valueOf() - 
          this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
        == new Date("2014-07-14").valueOf() );
 })

Isso irá basicamente comparar para ver se o ObjectId foi criado no mesmo dia que a data fornecida. Outros métodos ou matemática de datas se aplicam a outros intervalos.