diff --git a/mongodb/README.md b/mongodb/README.md index 5c4f6fda..86cefc42 100644 --- a/mongodb/README.md +++ b/mongodb/README.md @@ -48,7 +48,6 @@ store := mongodb.New(mongodb.Config{ Database: "fiber", Collection: "fiber_storage", Reset: false, - GCInterval: 10 * time.Second, }) ``` @@ -89,11 +88,6 @@ type Config struct { // // Optional. Default is false Reset bool - - // Time before deleting expired keys - // - // Optional. Default is 10 * time.Second - GCInterval time.Duration } ``` @@ -105,6 +99,5 @@ var ConfigDefault = Config{ Database: "fiber", Collection: "fiber_storage", Reset: false, - GCInterval: 10 * time.Second, } ``` diff --git a/mongodb/config.go b/mongodb/config.go index b3977da8..5c676fee 100644 --- a/mongodb/config.go +++ b/mongodb/config.go @@ -1,8 +1,6 @@ package mongodb -import ( - "time" -) +import "time" // Config defines the config for storage. type Config struct { @@ -54,7 +52,6 @@ var ConfigDefault = Config{ Database: "fiber", Collection: "fiber_storage", Reset: false, - GCInterval: 10 * time.Second, } // Helper function to set default values diff --git a/mongodb/mongodb.go b/mongodb/mongodb.go index 2eec2627..7481293a 100644 --- a/mongodb/mongodb.go +++ b/mongodb/mongodb.go @@ -37,7 +37,7 @@ func New(config ...Config) *Storage { cfg := configDefault(config...) // Create data source name - var dsn string = "mongodb://" + var dsn = "mongodb://" if cfg.Username != "" { dsn += url.QueryEscape(cfg.Username) } @@ -65,10 +65,21 @@ func New(config ...Config) *Storage { panic(err) } + // verify that the client can connect + if err = client.Ping(context.Background(), nil); err != nil { + panic(err) + } + // Get collection from database db := client.Database(cfg.Database) col := db.Collection(cfg.Collection) + if cfg.Clear { + if err = col.Drop(context.Background()); err != nil { + panic(err) + } + } + // expired data may exist for some time beyond the 60 second period between runs of the background task. // more on https://docs.mongodb.com/manual/core/index-ttl/ indexModel := mongo.IndexModel{