sql >> Databáze >  >> NoSQL >> MongoDB

Chci načíst hodnoty vložené k určitému datu pomocí _id mongodb

I když je pravda, že ObjectId je částečně založeno na "časovém razítku", obecně se jedná o operaci "klientské" knihovny pro "extrahování" tohoto data z hodnoty ObjectId.

Můžete to udělat pomocí hodnocení JavaScriptu $where , ale bude muset "naskenovat" celou sbírku, takže to není příliš efektivní:

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

To bude v podstatě porovnávat, zda ObjectId byl vytvořen ve stejný den jako uvedené datum. Pro jiné intervaly platí jiná matematika nebo metody data.




  1. Jak se vypořádat s problémem časového pásma při ukládání dat v utc pomocí mongodu?

  2. Může redis zakázat odpovědi na zřetězené příkazy?

  3. Mongoid Query DB podle virtuálního atributu

  4. MongoDB – Filtrování obsahu interního pole v sadě výsledků