Предположим, что у меня есть следующая модель пользователя:
const mongoose = require('mongoose');
const schema = new mongoose.Schema({
username: {
type: String,
unique: true,
required: true
},
email: {
type: String,
required: true,
match: /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
},
isVerified: {
type: Boolean,
default: false
},
password: {
type: String,
required: true
},
createdDate: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('User', schema);
У меня есть поле с именем isVerified
, которое позволяет мне узнать, нажал ли пользователь на электронное письмо с подтверждением.Теперь я хочу реализовать следующую функцию:
Если пользователь не подтвердит учетную запись в течение 12 часов, то запись должна быть автоматически удалена из коллекции Users
.Я видел, что MongoDB
делает доступной опцию expires
:
isVerified: {
type: Boolean,
default: false,
expires: 43200 //Remove after 12 hours
}
, но как я могу сказать MongoDB
удалить запись, только если isVerified
равен false
?