Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   самоудаляющийся документ в mongoose (https://javascript.ru/forum/node-js-io-js/60797-samoudalyayushhijjsya-dokument-v-mongoose.html)

ruvi 20.01.2016 17:31

самоудаляющийся документ в mongoose
 
Привет!

Есть ли в mongoose такая возможность, чтоб по истечении некоторого времени документ самостоятельно удалялся из базы данных?

Например: юзер зарегистрировался , но не активировал свой аккаунт. И чтоб база данных не засорялась - было бы круто чтоб такие (не активированные) юзеры сами удалялись.

ruvi 22.01.2016 13:55

Да, возможно. Модель должна выглядеть приблизительно так:

var mongoose = require('../libs/mongoose');
var schema = new Schema({
    name: {type: String, trim: true, required: true, unique: true},
    createdAt: {
        type: Date,
        expires: '1d',
        default: Date.now
    }
});

var User = mongoose.model("User", schema);

module.exports = User;


теперь, если сохранить документ
var user = new User({name: 'user name'});
user.save();


то этот документ сам удалится через один день.

если мы захотим (после сохранения этого документа) , чтоб он не "самоудалялся"
- делаем так:

// находим нужный документ
user = yield User.findById(id);

//...

// так отменяем "самоудаление"
user.update({createdAt: null});


Часовой пояс GMT +3, время: 09:01.