Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 Mongo::Client objeto para conectarse a diferentes tipos de implementaciones de MongoDB.

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, pase la cadena de conexión al constructor Mongo::Client.

Tip

Sigue el Guía de conexión del controlador Atlas para recuperar tu cadena de conexión.

Cuando se conecte a Atlas, se recomienda utilizar la opción de cliente de Stable API para evitar cambios disruptivos al actualizar a una nueva versión de MongoDB Server en Atlas. Para obtener más información sobre la funcionalidad Stable API, consulta Guía para conectarse con Stable API.

El siguiente código muestra cómo usar el controlador Ruby para conectarse a un clúster Atlas. El código también usa el campo server_api para especificar una versión estable de la API.

require 'mongo'
# Replace the placeholders with your credentials
uri = "<connection string>"
# Sets the server_api field of the options object to Stable API version 1
options = { server_api: { version: '1' } }
# Creates a new client and connect to the server
client = Mongo::Client.new(uri, options)
# Sends a ping to confirm a successful connection
begin
admin_client = client.use('admin')
result = admin_client.database.command(ping: 1).documents.first
puts "Pinged your deployment. You successfully connected to MongoDB!"
rescue Mongo::Error::OperationFailure => ex
puts ex
ensure
client.close
end

Para conectarse a una implementación local autónomo de MongoDB, especifica el host del servidor. Opcionalmente, especifica el puerto del servidor y de la base de datos a la que deseas conectarte. Si no se especifica un puerto, el puerto por defecto es 27017. Si no se especifica un nombre de base de datos, el cliente usará la base de datos admin:

Mongo::Client.new([ 'host1:27017' ], database: 'mydb')

También puede especificar el host, el puerto y la base de datos a la que conectarse mediante una cadena de conexión:

Mongo::Client.new("mongodb://host1:27017/mydb")

También puede especificar su host como localhost. El siguiente ejemplo de código se conecta a localhost en el puerto predeterminado, 27017:

client = Mongo::Client.new(["localhost"])

Para conectarse a un set de réplicas, se recomienda especificar todos los nodos que forman parte del set de réplicas. En caso de que uno o varios nodos no estén disponibles, al especificar todos los nodos se permite que el driver se conecte aún al set de réplicas, siempre que haya un nodo disponible.

Sin embargo, basta con pasar la dirección de cualquier nodo del conjunto de réplicas al controlador. El nodo no tiene que ser el principal, y puede ser un nodo oculto. El controlador detectará automáticamente los nodos restantes.

El siguiente ejemplo muestra cómo especificar tres miembros del conjunto de réplicas:

Mongo::Client.new([ 'host1:27017', 'host2:27018', `host3:21019` ], database: 'mydb')

El siguiente ejemplo muestra cómo conectarse al conjunto de réplicas mediante una cadena de conexión:

Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb")

El siguiente ejemplo muestra cómo verificar el nombre del set de réplicas al conectarse mediante la opción replica_set o la opción de cadena de conexión replicaSet:

Mongo::Client.new([ 'host1:27017', 'host2:27018', 'host3:27019' ],
database: 'mydb', replica_set: 'myapp')
# Or by using a connection string:
Mongo::Client.new("mongodb://host1:27017,host2:27018,host3:27019/mydb?replicaSet=myapp")

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 y buscar el registro SRV DNS del servicio al que se conecta, especifique el formato de conexión SRV en la cadena de conexión. Si especifica este formato, el controlador Ruby vuelve a escanear automáticamente en busca de nuevos hosts. Su implementación puede agregar hosts a su topología sin necesidad de modificar 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 crear un Mongo::Client objeto con el controlador Ruby, consulte la documentación de API para Mongo::Client.

Volver

Crear un cliente

En esta página