Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Elija un destino de conexión

En esta guía, puedes aprender cómo utilizar una cadena de conexión y un MongoClient objeto para conectarse a diferentes tipos de implementaciones de MongoDB utilizando el controlador de Go.

Tip

Para ver cómo crear y configurar tu objeto MongoClient, consulta el Crea un cliente Mongo página.

Para conectarte a una implementación de MongoDB en Atlas, incluye los siguientes elementos en tu cadena de conexión:

  • URL de tu clúster de Atlas

  • Nombre de usuario de MongoDB

  • Contraseña de MongoDB

Luego, pasa tu cadena de conexión al constructor de MongoClient.

Cuando te conectes a Atlas, recomendamos utilizar la opción del cliente Stable API para evitar cambios disruptivos cuando Atlas se actualice a una nueva versión de MongoDB Server. Para obtener más información sobre la funcionalidad API estable, consulta la guía sobre la Stable API.

El siguiente código muestra cómo puede crear un cliente que utiliza una cadena de conexión Atlas y la versión de Stable API, conectarse a MongoDB y verificar que la conexión es 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!")
}

Importante

Ya no se pueden crear nuevas instancias sin servidor, y a partir de mayo 5 2025, todas las instancias sin servidor existentes han sido migradas. El La página Todos los clusters en la Interfaz de Usuario de Atlas muestra a qué niveles se migran tus instancias según el uso.

Si necesitas ejecutar un servidor MongoDB en tu máquina local para fines de desarrollo, sigue los siguientes pasos:

  1. Descarga la versión Community o Empresa de MongoDB Server.

  2. Instale y configure MongoDB Server.

  3. Inicia el servidor.

Importante

Asegúrate siempre de proteger tu servidor MongoDB contra ataques maliciosos. Consulta la Lista de verificación de seguridad en el manual del servidor para ver una lista de recomendaciones de seguridad.

Después de iniciar MongoDB Server correctamente, se debe especificar la cadena de conexión en el código de conexión del driver.

Si MongoDB Server se está ejecutando localmente, se puede utilizar la cadena de conexión "mongodb://localhost:<port>" en que <port> es el número de puerto que se configuró para que el servidor escuche las conexiones entrantes.

Para obtener más información sobre cómo especificar un nombre de host o una dirección IP diferente, consulte Cadenas de conexión en el manual del Servidor.

Para probar si puedes conectarte a tu servidor, reemplaza la cadena de conexión con tu cadena de conexión localhost en el anterior ejemplo de código.

Una implementación de set de réplicas de MongoDB es un grupo de instancias conectadas que almacenan el mismo conjunto de datos. Esta configuración proporciona redundancia de datos y alta disponibilidad de datos.

Para conectar a una implementación de set de réplicas, especifica los nombres de host y los números de puerto de cada instancia, separados por comas, y el nombre del set de réplicas como el valor del parámetro replicaSet en la cadena de conexión. En la siguiente cadena de conexión de ejemplo, los nombres de host son host1, host2 y host3, y todos los números de puerto son 27017. El nombre del set de réplicas es myRS.

mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRS

Cuando se conecta a un set de réplicas, el driver realiza las siguientes acciones por defecto:

  • Descubre todos los nodos del conjunto de réplicas cuando se le proporciona la dirección de cualquiera de los nodos.

  • Envía las operaciones al nodo adecuado, como las instrucciones para guardar contra el primario.

Tip

Puedes especificar solo un host para conectarte a un set de réplicas. Sin embargo, debe proporcionar la lista completa de hosts para garantizar la conectividad cuando el host especificado no esté disponible.

Para obtener más información sobre los sets de réplicas, consulte la entrada Replicación en el manual del Servidor.

Para forzar operaciones en el host designado en la cadena de conexión, especifica la opción directConnection. Las conexiones directas presentan el siguiente comportamiento:

  • No admiten cadenas SRV.

  • Falla en los guardados cuando el host especificado no es el primario.

  • Se requiere que indiques un nodo secundario con preferencia de lectura secundaria cuando el host especificado no es el nodo primario.

Nota

Set de réplicas en Docker

Cuando un set de réplicas se ejecuta en Docker, se podría exponer solo un punto final de MongoDB. En este caso, el set de réplicas no se puede detectar. Si se especifica directConnection=false en la URI de conexión, o se deja esta opción sin configurar, puedes evitar que tu aplicación se conecte a ella.

En un entorno de prueba o desarrollo, se puede conectar al set de réplicas especificando directConnection=true. En un entorno de producción, se recomienda configurar el clúster para que cada instancia de MongoDB sea accesible fuera de la red virtual de Docker.

Para usar la detección de servicios DNS para buscar el registro SRV del servicio al que te estás conectando, especifica el formato de conexión SRV en tu cadena de conexión. Si especificas este formato, el controlador de Go vuelve a buscar automáticamente nuevos hosts. Su implementación puede añadir hosts a su topología sin requerir cambios en la configuración del cliente.

El siguiente código muestra una cadena de conexión que utiliza el formato de conexión SRV:

uri := "mongodb+srv://<hostname>/"

Para aprender más sobre el formato de conexión SRV, consulta la entrada Formato de conexión SRV en el manual de MongoDB Server.

Para obtener más información sobre cómo conectarse a diferentes instancias de MongoDB con un MongoClient, consulte la siguiente documentación de la API:

Volver

Crea un MongoClient

En esta página