sql >> Databasteknik >  >> NoSQL >> MongoDB

Dags att bo i mongodb, mongoose fungerar inte. Dokument raderas inte

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

Ett TTL-index tar bort ett dokument "x" sekunder efter att dess värde (som ska vara ett datum eller en uppsättning av datum) har passerat. TTL kontrolleras varje minut, så den kan leva lite längre än dina givna 15 sekunder.

För att ge datumet ett standardvärde kan du använda default alternativ i Mongoose. Den accepterar en funktion. I det här fallet, Date() returnerar den aktuella tidsstämpeln. Detta kommer att ställa in datumet till aktuell tid en gång .

Du kan också gå den här vägen:

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

Detta kommer att uppdatera värdet varje gång du anropar .save() (men inte .update() ).



  1. I en primär-sekundär Mongo-db-uppsättning om du av misstag skriver till en sekundär skulle den återspegla i primär den dirigeras till primär

  2. Hur lägger man till automatiskt inkrementerande fält i MongoDB-aggregat?

  3. Tillfälligt fel i namnupplösning redis

  4. MongoDb regional replikuppsättning - primär nod i varje region?