package database import ( "context" "time" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) var client *mongo.Client func Connect(uri, dbName string) (*mongo.Database, error) { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() var err error client, err = mongo.Connect(ctx, options.Client().ApplyURI(uri)) if err != nil { return nil, err } if err = client.Ping(ctx, nil); err != nil { return nil, err } return client.Database(dbName), nil } func Disconnect() error { if client == nil { return nil } ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() return client.Disconnect(ctx) } func GetClient() *mongo.Client { return client }