sql >> Database >  >> NoSQL >> MongoDB

Tijd om in mongodb te leven, mangoest werkt niet. Documenten worden niet verwijderd

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

Een TTL-index verwijdert een document 'x' seconden nadat de waarde (die een datum of een reeks datums zou moeten zijn) is verstreken. De TTL wordt elke minuut gecontroleerd, dus het kan iets langer duren dan de door u gegeven 15 seconden.

Om de datum een ​​standaardwaarde te geven, kunt u de default . gebruiken optie in mangoest. Het accepteert een functie. In dit geval Date() geeft de huidige tijdstempel terug. Hierdoor wordt de datum eenmaal . op de huidige tijd gezet .

Je zou ook deze route kunnen volgen:

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

Hierdoor wordt de waarde elke keer bijgewerkt je roept .save() . aan (maar niet .update() ).



  1. GET-verzoek is altijd standaard /(?:)/i - hoe kan ik het 'undefined' maken? - Tweede vraag over dit onderwerp

  2. Hoe lees je het liefst op secondaries in MongoDb

  3. Mongodb aggregatie opzoeken met voorwaarden

  4. NodeJS + Mongo - hoe de inhoud van de verzameling te krijgen?