Я пытаюсь истечь гостевые пользователи после 1 часа создания учетной записи. Я просмотрел базу данных MongoDB, а также другие подобные вопросы и попробовал предлагаемые решения, но они также не работали.
Когда гостевой пользователь создается в базе данных (он отображается под коллекцией guests
в MongoDB Atlas, поэтому проблем с его созданием нет), срок его действия не истекает через 30 секунд.
Зависимости v:
- "mongoose": "^ 5.7.8",
- "узел": "10.16.3"
Это user.js, где я сохраняю пользователя в базе данных, с ним нет проблем:
router.post("/guest", function (req, res, next) {
let guest = new Guest({
email: req.body.email
});
guest.save(function (err) {
});
res.redirect('back');
});
Вот что я пробовал:
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let guestSchema = new Schema({
email: { type: String, required: true }
});
guestSchema.index({createdAt: 1},{expireAfterSeconds: 30});
module.exports = mongoose.model('guest', guestSchema);
Итак, ятакже пробовал это:
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let guestSchema = new Schema({
email: { type: String, required: true }
});
guestSchema.createIndex({createdAt: 1},{expireAfterSeconds: 30});
module.exports = mongoose.model('guest', guestSchema);
, что приводит к ошибке createIndex is not a function
.
Я также пробовал это:
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let guestSchema = new Schema({
email: { type: String, required: true }
expire: { type: Date, index: { expireAfterSeconds: 30 } }
});
module.exports = mongoose.model('guest', guestSchema);
К сожалению, ни один не работал.