Mongodb架构在几秒钟后清空

时间:2018-01-28 11:33:29

标签: node.js mongodb express mongoose

当我要求将新对象保存到我的mongodb时,它会被保存,几秒钟后该模式中的所有内容都会消失。
在下面的屏幕截图中,您可以看到这种情况发生,在第一个命令中我检查架构是否为空,然后我发出请求以保存成功完成的新对象,几秒钟后您可以看到对象有消失了。 See screenshot here
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

1 个答案:

答案 0 :(得分:2)

getIndices输出我可以看到您在dateOfBooking上创建了一个TTL索引,因此在后端60秒后会被删除

来自mongo docs TTL index

  

TTL索引是MongoDB可以使用的特殊单字段索引   一定后自动从集合中删除文档   时间量或特定时钟时间