当我要求将新对象保存到我的mongodb时,它会被保存,几秒钟后该模式中的所有内容都会消失。
在下面的屏幕截图中,您可以看到这种情况发生,在第一个命令中我检查架构是否为空,然后我发出请求以保存成功完成的新对象,几秒钟后您可以看到对象有消失了。
express端点如下所示:
router.post('/bookdate',passport.authenticate('jwt', {session:false}), (req, res) => {
const userId = req.user._id
const appartmentNumber = req.user.apartmentNumber;
const requestedDate = req.body.requestedDate;
const bookingZone = req.body.bookingZone;
const newBooking = new Booking({
'apartmentNumber': appartmentNumber,
'dateOfBooking': requestedDate,
'bookingZone': bookingZone
});
if (req.user.hasTimeBooked) {
res.json({booked: false, msg: 'There is already a booking for this user.'})
} else {
if (typeof newBooking.requestedDate !== undefined && typeof newBooking.bookingZone !== undefined) {
Booking.addBooking(newBooking, (err, result)=>{
if(err){
res.json({booked: false, msg: err})
} else {
res.json({booked: true, msg: result})
}
})
} else {
res.json({booked: false, msg: 'Undefined parameters Date or Zone'})
}
}
});
并且mongoose架构看起来像这样
const mongoose = require('mongoose');
const config = require('../config/database');
const BookingSchema = mongoose.Schema({
apartmentNumber:{
type: Number,
unique: true
},
dateOfBooking:{
type: Date
},
bookingZone:{
type: String
}
});
const Booking = module.exports = mongoose.model('bookings',BookingSchema, 'bookings');
module.exports.addBooking = function(bookingObj, cb){
var newBooking = new Booking(bookingObj);
newBooking.save(cb);
}
控制台中没有出现错误,我不确定从哪里开始查找。 提前致谢!
修改 db.bookings.getIndices()的结果显示在屏幕截图here
中答案 0 :(得分:2)
从getIndices
输出我可以看到您在dateOfBooking
上创建了一个TTL索引,因此在后端60秒后会被删除
来自mongo docs TTL index
TTL索引是MongoDB可以使用的特殊单字段索引 一定后自动从集合中删除文档 时间量或特定时钟时间