Overview
En esta guía, puedes aprender cómo conectarte a un MongoDB Atlas implementación, una instancia de MongoDB o un set de réplicas utilizando el driver 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 de 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.
Puede usar options.Client() para personalizar la manera en que el controlador de Go se comporta 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 contra 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
Puedes acceder a tu cadena de conexión como una variable de entorno usando el siguiente código:
uri := os.Getenv("MONGODB_URI")
Puedes utilizar GoDotEnv para definir tu variable de entorno.
Añade la siguiente configuración de la aplicación en tu archivo .env en la raíz de tu proyecto, sustituyendo los textos de relleno por los valores de la cadena de conexión de tu implementación. Para obtener más información, consulta la documentación de GoDotEnv.
MONGODB_URI=mongodb+srv://<db_username>:<db_password>@<cluster-url>?retryWrites=true&w=majority
Crea un Cliente para Conectarte a MongoDB Atlas
Para conectarse a MongoDB, se debe crear un cliente. Un cliente gestiona tus conexiones y ejecuta comandos de 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 tu URI de conexión, pásalo al método ApplyURI(), que devuelve una nueva instancia de ClientOptions. Para establecer cualquier otra opción, llama al método auxiliar relevante del paquete de opciones.
Tip
Reutiliza tu cliente con los pool 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 aprender más sobre las opciones de conexión, consulta la sección Opciones de conexión . Para obtener más información sobre cómo crear un cliente, consulta la documentación de la API para 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 puedes crear un cliente que utilice un Atlas cadena de conexión y la versión Stable API, se conecte a MongoDB y verifique que la conexión sea exitoso:
// 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
Conexión del driver guía 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: