MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongoose dữ liệu hết hạn nhưng vẫn giữ trong cơ sở dữ liệu

Bạn nên sử dụng khái niệm Tham chiếu lược đồ cho điều này. Lưu đã hết hạn của bạn trong một bảng khác và tham gia user_table chính của bạn và expire_table (tên wxample)

var UserSchema = new Schema({
    name: String,
    email: String
});

//save date by-default
//expire in 1 min as in your example
var expireSchema = new Schema({
    createdAt: { type: Date, default: Date.now, expires: '1m'  },
    user_pk: { type: Schema.Types.ObjectId, ref: 'user_expire'}
});

var userTable = mongoose.model('user_expire', UserSchema);
var expireTable = mongoose.model('expireMe', expireSchema);

//Save new user
var newUser =  new userTable({
    name: 'my_name',
    email: 'my_email'
});

newUser.save(function(err, result) {
    console.log(result, 'saved')
    var newExpire =  new expireTable({
        user_pk:result._id
    });
    //use _id of new user and save it to expire table
    newExpire.save(function(err, result) {
        console.log('saved relation')
    })
})

Bây giờ để phát hiện xem phiên đã hết hạn hay chưa

1. thực thi mã này trước khi dữ liệu hết hạn

expireTable.findOne()
.populate('user_pk')
.exec(function (err, result) {
    if (err) throw err;
    console.log(result)
    if(result == null) {
        console.log('session has expired, renew session')
    } else {
        console.log('session is active')
    }
});

//output - session is active

2. về việc thực thi mã này sau khi dữ liệu hết hạn

expireTable.findOne()
.populate('user_pk')
.exec(function (err, result) {
    if (err) throw err;
    console.log(result)
    if(result == null) {
        console.log('session has expired, renew session')
    } else {
        console.log('session is active')
    }
});

//output - session has expired, renew session


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách đặt tên @TextIndex trong một thực thể với Spring-Data-MongoDB

  2. Tạo chỉ mục đa trường trong Mongoose / MongoDB

  3. MongoDB - Sử dụng khung tổng hợp hoặc bản đồ hóa để đối sánh mảng chuỗi trong tài liệu (đối sánh hồ sơ)

  4. Cư trú ảo với Mongoose

  5. Minimongo chưa hỗ trợ $ operator trong các phép chiếu