MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ich möchte Werte abrufen, die an einem bestimmten Datum mit _id von mongodb eingefügt wurden

Es stimmt zwar, dass die ObjectId teilweise auf einem „Zeitstempel“ basiert, aber im Allgemeinen ist dies eine „Client“-Bibliotheksoperation, um dieses Datum aus dem ObjectId-Wert zu „extrahieren“.

Dies können Sie mit der JavaScript-Auswertung von $where , aber es muss die gesamte Sammlung "scannen", ist also nicht sehr effizient:

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

Das wird im Grunde vergleichen, um zu sehen, ob die ObjectId wurde am selben Tag wie das angegebene Datum erstellt. Andere Datumsberechnungen oder Methoden gelten für andere Intervalle.