sql >> Database >  >> NoSQL >> MongoDB

Ik wil waarden ophalen die op een bepaalde datum zijn ingevoegd met _id van mongodb

Hoewel het waar is dat de ObjectId gedeeltelijk is gebaseerd op een "tijdstempel", is dit over het algemeen een "client"-bibliotheekbewerking om deze datum uit de ObjectId-waarde te "extraheren".

U kunt dit doen met de JavaScript-evaluatie van $where , maar het zal de hele collectie moeten "scannen", dus is niet erg efficiënt:

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

Dat zal in principe vergelijken om te zien of de ObjectId is gemaakt op dezelfde dag als de opgegeven datum. Andere datumberekeningen of methoden zijn van toepassing op andere intervallen.




  1. Verwijder genest document met voorwaarde in MongoDB

  2. Een fout krijgen bij het invoegen in een Meteor-verzameling

  3. Jade gebruiken om JSON te herhalen

  4. Documenten vinden die aan meerdere criteria voldoen