Для того чтобы подключиться из 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
.
Обратите внимание, что код приведен только для примера и вам может потребоваться его модифицировать в соответствии с вашими конкретными требованиями и настройками базы данных.