Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Ruby Driver
/

Escolha um destino de conexão

Neste guia, você pode aprender como utilizar uma string de conexão e um objeto do Mongo::Client para conectar a diferentes tipos de sistemas MongoDB .

Para se conectar a uma MongoDB deployment no Atlas, inclua os seguintes elementos em sua connection string:

  • URL do seu cluster Atlas

  • Nome de usuário do MongoDB

  • Senha do MongoDB

Em seguida, passe sua connection string para o construtor Mongo::Client .

Dica

Siga oguia de conexão do driver do Atlas para recuperar sua connection string.

Ao se conectar ao Atlas, recomendamos usar a opção de cliente Stable API para evitar alterações significativas quando o Atlas atualizar para uma nova versão do MongoDB Server. Para saber mais sobre o recurso de Stable API , consulte o guia deStable API .

O código abaixo mostra como usar o driver Ruby para se conectar a um cluster Atlas . O código também usa o campo server_api para especificar uma versão da API estável.

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 se conectar a uma implantação local do MongoDB autônomo , especifique o host do servidor. Opcionalmente, especifique a porta do servidor e o banco de dados ao qual se conectar. Se nenhuma porta for especificada, a porta padrão será 27017. Se nenhum nome de banco de dados for especificado, o cliente usará o banco de dados admin :

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

Você também pode especificar o host, a porta e o banco de dados para se conectar usando uma string de conexão:

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

Você também pode especificar seu host como localhost. O seguinte exemplo de código se conecta a localhost na porta padrão, 27017:

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

Para se conectar a um conjunto de réplicas, é recomendável especificar todos os nós que fazem parte do conjunto de réplicas. evento um ou mais nós fiquem indisponíveis, a especificação de todos os nós permite que o driver ainda se conecte ao conjunto de réplicas, desde que um nó esteja disponível.

No entanto, é suficiente passar o endereço de qualquer nó do conjunto de réplicas para o driver. O nó não precisa ser o primário e pode ser um nó oculto. Em seguida, o driver descobrirá automaticamente os nós restantes.

O exemplo a seguir mostra como especificar três membros do conjunto de réplicas:

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

O exemplo a seguir mostra como se conectar ao conjunto de réplicas usando uma string de conexão:

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

O exemplo a seguir mostra como verificar o nome do conjunto de réplicas na conexão usando a opção replica_set ou a opção de string de conexão 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")

Observação

Conjunto de réplicas no Docker

Quando um conjunto de réplicas é executado no Docker, ele pode expor apenas um endpoint MongoDB . Nesse caso, o conjunto de réplicas não é detectável. Especificar directConnection=false em seu URI de conexão ou deixar essa opção sem definir pode impedir que seu aplicação se conecte a ele.

Em um ambiente de teste ou desenvolvimento, é possível conectar-se ao conjunto de réplicas especificando directConnection=true. Em um ambiente de produção, recomendamos configurar o cluster para que cada instância do MongoDB seja acessível fora da rede virtual do Docker.

Para saber mais sobre como criar um objeto Mongo::Client com o driver Ruby, consulte a documentação da API para Mongo::Client .

Voltar

Stable API

Nesta página