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

Voglio recuperare i valori inseriti in una data particolare usando _id di mongodb

Sebbene sia vero che ObjectId si basa in parte su un "timestamp", in genere si tratta di un'operazione di libreria "client" per "estrarre" questa data dal valore ObjectId.

Puoi farlo con la valutazione JavaScript di $where , ma dovrà "scansionare" l'intera raccolta, quindi non è molto efficiente:

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

In pratica verrà confrontato per vedere se ObjectId è stato creato lo stesso giorno della data indicata. Altri metodi o calcoli relativi alla data si applicano ad altri intervalli.