Есть ли другой способ удаления данных в пн goose по истечении заданного времени - PullRequest
0 голосов
/ 28 марта 2020
const notificationSchema = mongoose.Schema({
    type:{
        type: String
    },

    message:{
       type: String
    },
    userId:{
        type: String,
        required: true,

    },
    timestamp:{
        type: Date,
        default: new Date()

    },
    expireAt: {
        type: Date,
        default: Date.now,
        index: { expires: '5m' },
      },
})

Мои данные не удаляются автоматически в пн goose, что-то не так с моей моделью? Вот моя структура модели. Может ли кто-нибудь помочь

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Есть несколько способов, но на ум приходит TTL.

"TTL-индексы - это специальные однополевые индексы, которые MongoDB может использовать для автоматического удаления документов из коллекции по истечении определенного времени или при конкретное c время. "

Узнайте больше здесь> https://docs.mongodb.com/manual/core/index-ttl/

И для пн goose> https://github.com/mongoosejs/mongoose-ttl

0 голосов
/ 28 марта 2020
const notificationSchema = mongoose.Schema({
type:{
    type: String
},

message:{
   type: String
},
userId:{
    type: String,
    required: true,
},
{ 
  timestamps: true
}
});

notificationSchema.index({createdAt: 1},{expireAfterSeconds: 3600});

Каждое поле в коллекции будет удалено через 3600 секунд

...