Hello,
I’m trying to implement a functionality where every document after being added is deleted after ~30 minutes.
I’ve tried adding this into my project
Meteor.startup(() => {
Collection._ensureIndex({createdAt: 1}, {expireAfterSeconds: 1800});
});
However, it does not delete in 30 minutes, it takes it roughly 1-2 minutes to delete, and it deletes everything. Any idea why?
Is createdAt
definitely a date
field (like createdAt: new Date()
)?
1 Like
This is what I have
Meteor.methods({
addRCData(name, cmbLvl, risk, world, isRCer, key) {
if (!isRCer) {
isRCer = "false";
}
Crafters.insert({
name: name,
createdAt: new Date(),
cmbLvl: parseInt(cmbLvl),
risk: parseInt(risk),
world:parseInt(world),
isRCer:isRCer
}
);
this.unblock();
}
});
Meteor.startup(() => {
Crafters._ensureIndex({createdAt: 1}, {expireAfterSeconds: 1800});
});
However it deletes in approx 2 minutes.
This is literally all I have.
Solved it differently.
var currentDate = new Date (),
expireDate = new Date (currentDate);
expireDate.setMinutes ( currentDate.getMinutes() + expireMin );
Crafters.insert({
name: name,
createdAt: currentDate,
expireAt: expireDate,
cmbLvl: parseInt(cmbLvl),
risk: parseInt(risk),
world:parseInt(world),
isRCer:isRCer
}
);
Meteor.setInterval((function() {
Crafters.remove({expireAt: {$lte: new Date()}});
}), 1200);