I need a solution to delete the documents from a table in mongo DB after certain time automatically. I have some bugs in this code. even if I specify the time to expire is 2 minutes, it deletes document earlier than 2 minutes.
My code:
var mongoose = require("mongoose");
var loginSchema = new mongoose.Schema(
/*{
expire_at: { type: Date, default: Date.now, expires: 60 }
},*/
{
email: {
type: String,
require: true,
min: 6,
max: 255,
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])?/
},
password: {
type: String,
require: true,
max: 1024,
min: 6
},
latitude: {
type: String,
require: true
},
longitude: {
type: String,
require: true
},
IPAddress: {
type: String,
require: true
},
ISP: {
type: String,
require: true
},
Location: {
type: String,
require: true
},
isMobile: {
type: Boolean
},
MobileDeviceID: {
type: String
},
date: {
type: Date,
default: Date.now
},
expireAt: {
type: Date,
default: Date.now,
index: { expires: '2m' }
}
}
);
module.exports = mongoose.model("Login", loginSchema);