MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose wygasa dane, ale zachowaj w bazie danych

Powinieneś użyć koncepcji Schema Reference dla tego. Zapisz swój wygasły w innej tabeli i dołącz do głównej user_table i expire_table (przykładowa nazwa)

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')
    })
})

Teraz, aby wykryć, czy sesja wygasła, czy nie

1. o wykonaniu tego kodu, zanim dane wygasną

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. o wykonaniu tego kodu po wygaśnięciu danych

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. Tablica aktualizacji wewnątrz dokumentu Mongo nie działa

  2. Reaguj na żądania POST za pomocą Express/Node i MongoDB

  3. Wczytaj BSON (mongoDB) do POJO za pomocą GSON i TypeAdapter

  4. Jak uzyskać dane z tablicy w manguście?

  5. Plasterek wiosennego repozytorium mongo