Вам необходимо создать индекс ttl для поля, которое необходимо удалить через n секунд.
В приведенном ниже фрагменте кода создано поле expirationTime, для которого можно установить значение ttl.Через 60 секунд после истечения срока действия, установленного в записи, запись будет удалена.
Ниже приведен код для создания индекса TTL:
var ttl *int32
*ttl = 60
keys := bsonx.Doc{{Key: "expirationTime", Value: bsonx.Int32(int32(1))}}
idx := mongo.IndexModel{Keys: keys, Options: &options.IndexOptions{ExpireAfterSeconds: ttl}}
_, err := collection.Indexes().CreateOne(context.Background(), idx)
if err != nil {
fmt.Println("Error occurred while creating index", err)
} else {
fmt.Println("Index creation success")
}