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

Tid til at bo i mongodb, mongoose virker ikke. Dokumenter bliver ikke slettet

var UserSessionSchema   = new Schema({
    sessionActivity:    { type: Date, expires: '15s', default: Date.now }, // Expire after 15 s
    user_token:         { type: String, required: true }
});

Et TTL-indeks sletter et dokument 'x' sekunder efter dets værdi (som skal være en dato eller en række datoer) er passeret. TTL kontrolleres hvert minut, så det kan leve lidt længere end dine givne 15 sekunder.

For at give datoen en standardværdi kan du bruge default mulighed i Mongoose. Den accepterer en funktion. I dette tilfælde Date() returnerer det aktuelle tidsstempel. Dette vil indstille datoen til det aktuelle klokkeslæt én gang .

Du kan også gå denne vej:

UserSessionSchema.pre("save", function(next) { 
    this.sessionActivity = new Date(); 
    next(); 
});

Dette vil opdatere værdien hver gang du kalder .save() (men ikke .update() ).



  1. MongoDB-database slettet automatisk

  2. MongoDB+doktrin:Sådan sorteres forespørgslen efter tekstsøgningsscore

  3. $push i MongoDb virker ikke?

  4. I MongoDB mapreduce, hvordan kan jeg udjævne værdiobjektet?