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

Čas žít v mongodb, mongoose nefungují. Dokumenty se nesmažou

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

Index TTL odstraní dokument 'x' sekund poté, co uplynula jeho hodnota (což by mělo být datum nebo pole dat). TTL je kontrolováno každou minutu, takže může žít o něco déle než zadaných 15 sekund.

Chcete-li datu přiřadit výchozí hodnotu, můžete použít default možnost v Mongoose. Přijímá funkci. V tomto případě Date() vrátí aktuální časové razítko. Tím se jednou nastaví datum na aktuální čas .

Můžete také jít touto cestou:

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

Tím se hodnota aktualizuje pokaždé zavoláte .save() (ale ne .update() ).



  1. Redis:Selhalo otevření .rdb pro uložení:Povolení odepřeno

  2. Jak se připojit k externí instanci MongoDB v Meteoru?

  3. Vypínání Redis

  4. Získejte sbírku a přidejte k odpovědi hodnotu