sql >> Databasteknik >  >> NoSQL >> MongoDB

Jag vill hämta värden som infogats på ett visst datum med _id av mongodb

Även om det är sant att ObjectId delvis är baserat på en "tidsstämpel", är detta vanligtvis en "klient"-biblioteksoperation för att "extrahera" detta datum från ObjectId-värdet.

Du kan göra detta med JavaScript-utvärderingen av $where , men det kommer att behöva "skanna" hela samlingen, så det är inte särskilt effektivt:

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

Det kommer i princip att jämföras för att se om ObjectId skapades samma dag som det angivna datumet. Andra datummatematik eller metoder gäller för andra intervall.




  1. Uppdatera flera underdokument via Mongoose?

  2. Använder inbyggda ES6-löften med MongoDB

  3. Varför misslyckas Travis med att ansluta använder Redis cache_store när den distribueras till Heroku?

  4. Varför kan inte mitt Redis Lua-skript atomiskt uppdatera nycklar på olika Redis Cluster-noder?