Setting expiry time for a collection in mongodb using mongoose

hi i came across something called ttl in mongodb docs to set expiry time for collections in a db below is the command that can be accesses via the mongo terminal

db.log.events.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } )

I need to do this from my code in nodejs using mongoose module.Any idea how to proceed further will be much helpful

In Mongoose, you create a TTL index on a Date field via the expires property in the schema definition of that field:

// expire docs 3600 seconds after createdAt
new Schema({ createdAt: { type: Date, expires: 3600 }});

Note that:

  • MongoDB's data expiration task runs once a minute, so an expired doc might persist up to a minute past its expiration.
  • This feature requires MongoDB 2.2 or later.
  • It's up to you to set createdAt to the current time when creating docs, or add a default to do it for you as suggested here.
    • { createdAt: { type: Date, expires: 3600, default: Date.now }}