heruvym/internal/initialize/mongo.go
2024-10-01 14:34:09 +03:00

26 lines
657 B
Go

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
}