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 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 } // Проверяем соединение err = client.Ping(ctx, nil) if err != nil { return nil, err } return client.Database("database"), 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 }