Search code examples
loopbackjsloopback

ttl not working in loopback when I set it for a Model


I am trying to set ttl for a loopback model so that the document gets deleted automatically after specified time. Here is the property I have added:

"ttl": {
    "type": "number",
    "required": true
}

This is not AccessToken model but a separate model whose documents I want to be deleted after specified time interval.


Solution

  • I was able to this solve as follows:

    MyCollection.getDataSource().connector.connect(function(err, db) {
        if(!err){
            var collection = db.collection('MyCollection');
            collection.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } );
        }
    
    });
    

    Then for each document, I inserted expireAtwhich corresponds to the time the document should expire. MongoDB automatically deletes documents from the collection at the documents’ expireAt time.