MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Hora de viver em mongodb, mangusto não funciona. Os documentos não são excluídos

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

Um índice TTL exclui um documento 'x' segundos após seu valor (que deve ser uma Data ou uma matriz de Datas) ter passado. O TTL é verificado a cada minuto, portanto, pode durar um pouco mais do que os 15 segundos fornecidos.

Para dar à data um valor padrão, você pode usar o default opção em Mongoose. Ele aceita uma função. Neste caso, Date() retorna o timestamp atual. Isso definirá a data para a hora atual uma vez .

Você também pode seguir este caminho:
UserSessionSchema.pre("save", function(next) { 
    this.sessionActivity = new Date(); 
    next(); 
});

Isso atualizará o valor todas as vezes você chama .save() (mas não .update() ).