sql >> Database teknologi >  >> NoSQL >> MongoDB

Jeg ønsker at hente værdier indsat på en bestemt dato ved hjælp af _id af mongodb

Selvom det er rigtigt, at ObjectId delvist er baseret på et "tidsstempel", er dette generelt en "klient" biblioteksoperation for at "udtrække" denne dato fra ObjectId-værdien.

Du kan gøre dette med JavaScript-evalueringen af ​​$where , men den skal "scanne" hele samlingen, så den er ikke særlig effektiv:

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

Det vil grundlæggende sammenligne for at se, om ObjectId blev oprettet samme dag som den angivne dato. Anden dato matematik eller metoder gælder for andre intervaller.




  1. MongoDb:find dybt indlejret objekt med $lookup

  2. hvordan dræber jeg inaktive redis-klienter

  3. Hvordan finder man top 5 værdier i mongodb? og bør ikke indeholde samme værdi

  4. Få adgang til undersamlingen i mongoid med skinner for at redigere og oprette en ny post