Visão geral
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 .
Atlas
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
Implantações locais
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"])
Conjuntos de réplicas
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.
Documentação da API
Para saber mais sobre como criar um objeto Mongo::Client
com o driver Ruby, consulte a documentação da API para Mongo::Client .