package initialize import ( "context" "fmt" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "time" ) func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) { newCtx, cancel := context.WithTimeout(ctx, 10*time.Second) defer cancel() clientOptions := options.Client().ApplyURI(cfg.MongoURI) client, err := mongo.Connect(newCtx, clientOptions) if err != nil { return nil, fmt.Errorf("failed to connect to MongoDB: %w", err) } err = client.Ping(newCtx, nil) if err != nil { return nil, fmt.Errorf("failed to ping MongoDB: %w", err) } db := client.Database(cfg.MongoDbTable) return db, nil }