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

Thời gian sống trong mongodb, mongoose không hoạt động. Tài liệu không bị xóa

var UserSessionSchema   = new Schema({
    sessionActivity:    { type: Date, expires: '15s', default: Date.now }, // Expire after 15 s
    user_token:         { type: String, required: true }
});

Chỉ mục TTL xóa tài liệu 'x' giây sau khi giá trị của nó (phải là Ngày hoặc một mảng Ngày) trôi qua. TTL được kiểm tra mỗi phút, vì vậy nó có thể tồn tại lâu hơn một chút so với 15 giây đã cho của bạn.

Để đặt ngày làm giá trị mặc định, bạn có thể sử dụng default tùy chọn trong Mongoose. Nó chấp nhận một chức năng. Trong trường hợp này, Date() trả về dấu thời gian hiện tại. Điều này sẽ đặt ngày thành thời gian hiện tại một lần .

Bạn cũng có thể đi theo tuyến đường này:

UserSessionSchema.pre("save", function(next) { 
    this.sessionActivity = new Date(); 
    next(); 
});

Điều này sẽ cập nhật giá trị mọi lúc bạn gọi .save() (nhưng không phải .update() ).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Trình điều khiển C ++ Mongo mới:cách xem kiểu và cách lấy giá trị chuỗi

  2. Cách khôi phục kết xuất vào mongodb đang chạy của bạn

  3. Dự án dưới dạng tài liệu lồng nhau trong Spring mongo

  4. Mongoosejs làm mới tài liệu

  5. MongoDB chênh lệch giữa $ orderby và Sort