Как подключится из Go к mongodb в докере с авторизацией?

Для того чтобы подключиться из Go к MongoDB в докере с авторизацией, вам понадобится использовать официальную библиотеку для работы с MongoDB - Mongo-go-driver.

Первым шагом необходимо установить эту библиотеку, которая является заменой старой библиотеки mgo. Вы можете выполнить установку с помощью следующей команды:

go get go.mongodb.org/mongo-driver

Затем вы должны импортировать необходимые пакеты для работы с базой данных:

import (
    "context"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "go.mongodb.org/mongo-driver/mongo/readpref"
)

Теперь вы можете создать функцию для подключения к MongoDB:

func ConnectToDB() (*mongo.Client, error) {
    // Установить параметры подключения
    clientOptions := options.Client().ApplyURI("mongodb://<username>:<password>@<host>:<port>")

    // Подключиться к MongoDB
    client, err := mongo.Connect(context.TODO(), clientOptions)
    if err != nil {
        return nil, err
    }

    // Проверить соединение с MongoDB
    err = client.Ping(context.TODO(), readpref.Primary())
    if err != nil {
        return nil, err
    }

    return client, nil
}

Поменяйте <username>, <password>, <host> и <port> соответственно на данные вашей базы данных MongoDB.

Теперь вам остается только вызвать эту функцию, чтобы установить соединение:

func main() {
    client, err := ConnectToDB()
    if err != nil {
        log.Fatal(err)
    }

    // Дальнейшая работа с базой данных
    // ...
    
    // Закрыть соединение с MongoDB
    err = client.Disconnect(context.TODO())
    if err != nil {
        log.Fatal(err)
    }
}

Используя данную функцию, вы сможете установить соединение с MongoDB в докер-контейнере с авторизацией и осуществлять операции с базой данных, используя клиентский экземпляр из пакета go.mongodb.org/mongo-driver/mongo.

Обратите внимание, что код приведен только для примера и вам может потребоваться его модифицировать в соответствии с вашими конкретными требованиями и настройками базы данных.