Overview
En esta guía, puede aprender cómo conectarse a un Implementación de MongoDB Atlas, una instancia de MongoDB o un conjunto de réplicas que utiliza el controlador Go.
Para conectarse a una implementación de MongoDB, necesita las siguientes dos cosas:
URI de conexión, también conocido como cadena de conexión, que le indica al controlador Go a qué implementación de MongoDB conectarse.
Objeto MongoClient, que establece la conexión y lleva a cabo operaciones en la implementación de MongoDB.
Puedes utilizar options.Client() para personalizar la forma en que se comporta el controlador Go mientras está conectado a MongoDB.
URI de conexión
Una cadena de conexión estándar incluye los siguientes componentes:
Componente | Descripción |
|---|---|
| Requerido. Un prefijo que identifica esto como un string en el formato de conexión estándar. |
| Opcional. Credenciales de autenticación. Si las incluye, el cliente autentica al usuario con la base de datos especificada en |
| Requerido. El host y el número de puerto opcional donde se ejecuta MongoDB. Si no incluyes el número de puerto, el controlador utiliza el puerto por defecto, |
| Opcional. La base de datos de autenticación que se debe usar si la cadena de conexión incluye las credenciales de autenticación |
| Opcional. Un string del query que especifica opciones específicas de conexión como pares |
Tip
Para recuperar una cadena de conexión para una implementación de Atlas, siga la guía de inicio rápido.
Para obtener más información sobre cómo crear una cadena de conexión, consulte Cadenas de conexión en la documentación de MongoDB Server.
Variable de entorno
Puede acceder a su cadena de conexión como una variable de entorno utilizando el siguiente código:
uri := os.Getenv("MONGODB_URI")
Puede utilizar GoDotEnv para definir su variable de entorno.
Agregue la siguiente configuración .env de la aplicación al archivo en la raíz del proyecto, reemplazando los marcadores de posición con los valores de la cadena de conexión de su implementación. Para obtener más información, consulte la documentación de GoDotEnv.
MONGODB_URI=mongodb+srv://<db_username>:<db_password>@<cluster-url>?retryWrites=true&w=majority
Crear un cliente para conectarse a MongoDB Atlas
Para conectarse a MongoDB, debe crear un cliente. Un cliente administra sus conexiones y ejecuta comandos de la base de datos.
Puedes crear un cliente que use tu cadena de conexión y otras opciones del cliente si trasladas un objeto ClientOptions al método Connect().
Para especificar la URI de conexión, pásela al método ApplyURI(), que devuelve una nueva instancia ClientOptions. Para configurar otras opciones, llame al método auxiliar correspondiente del paquete de opciones.
Tip
Reutilice su cliente con grupos de conexiones
Recomendamos reutilizar el cliente entre sesiones y operaciones utilizando un pool de conexiones. Puedes utilizar la misma instancia Client para realizar varias tareas, en lugar de crear una nueva cada vez. El tipo Client es seguro para su uso concurrente por múltiples goroutines. Para aprender más sobre cómo funcionan los pool de conexiones en el driver, consulta la guía pool de conexiones.
Para obtener más información sobre las opciones de conexión, consulte la sección "Opciones de conexión". Para obtener más información sobre cómo crear un cliente, consulte la documentación de la API de Cliente y Connect().
Puedes configurar la versión estable de la API como opción para evitar cambios importantes al actualizar a una nueva versión del servidor. Para obtener más información sobre la función API estable, consulta la página API estable.
Ejemplo
El siguiente código muestra cómo crear un cliente que use una cadena de conexión Atlas y la versión API estable, se conecte a MongoDB y verifique que la conexión sea exitosa:
// Connects to MongoDB and sets a Stable API version package main import ( "context" "fmt" "log" "os" "go.mongodb.org/mongo-driver/v2/bson" "go.mongodb.org/mongo-driver/v2/mongo" "go.mongodb.org/mongo-driver/v2/mongo/options" ) func main() { var uri string if uri = os.Getenv("MONGODB_URI"); uri == "" { log.Fatal("You must set your 'MONGODB_URI' environment variable. See\n\t https://mongodb.com/es/docs/drivers/go/current/usage-examples/") } // Uses the SetServerAPIOptions() method to set the Stable API version to 1 serverAPI := options.ServerAPI(options.ServerAPIVersion1) // Defines the options for the MongoDB client opts := options.Client().ApplyURI(uri).SetServerAPIOptions(serverAPI) // Creates a new client and connects to the server client, err := mongo.Connect(opts) if err != nil { panic(err) } defer func() { if err = client.Disconnect(context.TODO()); err != nil { panic(err) } }() // Sends a ping to confirm a successful connection var result bson.M if err := client.Database("admin").RunCommand(context.TODO(), bson.D{{"ping", 1}}).Decode(&result); err != nil { panic(err) } fmt.Println("Pinged your deployment. You successfully connected to MongoDB!") }
Recursos adicionales
Para más información sobre los conceptos de esta guía, consulta la siguiente documentación:
Cadenas de conexión en el manual del servidor
Opciones de cadena de conexión en el manual del servidor
Guía de conexión del controlador en la documentación de Atlas y seleccione Go desde el menú desplegable de idioma
Documentación de la API
Para obtener más información sobre los métodos y tipos analizados en esta guía, consulte la siguiente documentación de API: