Docs Menu
Docs Home
/ /

Elija un destino de conexión

En esta guía, puede aprender a utilizar una cadena de conexión y una Mongo::Client objeto para conectarse a diferentes tipos de implementaciones de MongoDB.

Para conectarse a una implementación de MongoDB en Atlas, incluya los siguientes elementos en su cadena de conexión:

  • URL de su clúster 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 su cadena de conexión.

Al conectarse a Atlas, recomendamos usar la opción de cliente API estable para evitar cambios importantes cuando Atlas se actualice a una nueva versión de MongoDB Server. Para obtener más información sobre la función API estable, consulte Conéctese con la guía API estable.

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 independiente de MongoDB, especifique el host del servidor. Opcionalmente, especifique el puerto del servidor y la base de datos a la que se conectará. Si no se especifica ningún puerto, el puerto predeterminado es 27017. Si no se especifica ningún 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 conjunto de réplicas, se recomienda especificar todos los nodos que lo componen. Si uno o más nodos dejan de estar disponibles, especificar todos los nodos permite que el controlador se conecte al conjunto 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 conjunto de réplicas durante la conexión utilizando 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