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

È ora di vivere a mongodb, la mangusta non funziona. I documenti non vengono eliminati

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

Un indice TTL elimina un documento 'x' secondi dopo che il suo valore (che dovrebbe essere una data o una matrice di date) è passato. Il TTL viene controllato ogni minuto, quindi potrebbe durare un po' più a lungo dei 15 secondi che hai dato.

Per dare alla data un valore predefinito, puoi usare il default opzione in Mangusta. Accetta una funzione. In questo caso, Date() restituisce il timestamp corrente. Questo imposterà la data sull'ora corrente una volta .

Potresti anche seguire questa strada:

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

Questo aggiornerà il valore ogni volta chiami .save() (ma non .update() ).