我正在尝试在创建帐户1小时后使访客用户过期。我查找了MongoDB数据库以及其他类似问题,并尝试了建议的解决方案,但是它们也没有用。
在数据库中创建来宾用户时(它显示在MongoDB Atlas的guests
集合下,因此创建方式没有问题),它不会在30秒后过期。
依赖项v:
- “猫鼬”:“ ^ 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},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);
不幸的是,两者都没有。