Esta página mostra como usar o MongoDB Shell para se conectar a uma implantação do MongoDB. Você pode se conectar a uma implantação hospedada na nuvem do MongoDB Atlas, conectar-se a uma implantação local ou conectar-se a outro host remoto com o MongoDB Shell.
Pré-requisitos
Para usar o MongoDB Shell, você deve ter uma implantação MongoDB para se conectar.
Para uma implantação gratuita hospedada na nuvem, você pode usar o MongoDB Atlas.
Para saber como executar uma implantação do MongoDB, consulte Instalar o MongoDB.
Versões MongoDB suportadas
Você pode usar o MongoDB Shell para se conectar à versão 7.0 do MongoDB ou superior.
Instalar mongosh
Estes procedimentos pressupõem que você já tenha mongosh instalado. Para obter mais informações sobre a instalação mongosh do, consulte Instalar o mongosh.
Conecte-se a uma implantação do MongoDB Atlas
Você pode se conectar à implantação do MongoDB Atlas diretamente do seu shell.
Obtenha sua connection string Atlas
Você precisa de uma connection string do Atlas para conectar a partir do MongoDB Shell. Você pode obter a connection string do Atlas na UI do Atlas.
Consulte o guia Find Your MongoDB Atlas Connection String para obter detalhes.
Defina as credenciais do seu banco de dados
Se você ainda não tiver criado um usuário de banco de dados, deverá definir um nome de usuário e senha. Para se conectar ao Atlas, passe seu nome de usuário com a string de conexão do Atlas. Depois de emitir o comando connect, o shell solicitará sua senha.
Conecte-se ao MongoDB Atlas com mongosh
Para estabelecer sua conexão, execute o comando mongosh com sua connection string e opções para estabelecer a conexão.
A cadeia de caracteres de conexão inclui os seguintes elementos:
O nome do seu cluster
Um hash
Uma bandeira para a versão da API
Uma bandeira para o nome de usuário que você deseja usar para se conectar
Ele se parece com a seguinte cadeia de caracteres:
mongosh "mongodb+srv://YOUR_CLUSTER_NAME.YOUR_HASH.mongodb.net/" --apiVersion YOUR_API_VERSION --username YOUR_USERNAME
Observação
Saiba mais
Você pode utilizar outras opções de segurança de conexão para conectar ao Atlas via mongosh. Para obter informações sobre a conexão com um IP privado para peering ou uma conexão Private Endpoint, consulte a documentação do Atlas Connect via mongosh.
Conectar a uma implantação local na porta padrão
Para se conectar a uma MongoDB deployment em execução no localhost com a default port 27017, execute mongosh sem nenhuma opção:
mongosh
Isso equivale ao seguinte comando:
mongosh "mongodb://localhost:27017"
Conectar a uma implantação local em uma porta não padrão
Para especificar uma porta à qual se conectar no localhost, você pode usar:
Uma string de conexão com a porta escolhida
A opção de linha de comando
--port
Por exemplo, os seguintes comandos conectam a uma implantação executando na porta 28015 do localhost:
mongosh "mongodb://localhost:28015"
mongosh --port 28015
Conectar-se a uma implantação em um host remoto
Para especificar um host e uma porta remota, você pode usar:
Uma string de conexão com o host e a porta escolhidos.
As opções de linha de comando
--hoste--port. Se você omitir a opção--port,mongoshusará a porta padrão 27017.
Por exemplo, os comandos a seguir se conectam a uma MongoDB deployment em execução no host mongodb0.example.com e na porta 28015:
mongosh "mongodb://mongodb0.example.com:28015"
mongosh --host mongodb0.example.com --port 28015
Observação
Ligar ao MongoDB Atlas
Se seu host remoto for um cluster do Atlas, você poderá copiar sua string de conexão da IU do Atlas. Para saber mais, consulte Conectar-se a um cluster na documentação do Atlas.
Especificar opções de conexão
Especifique diferentes connecting options para se conectar a diferentes tipos de implantações.
Conecte-se com autenticação
Para se conectar a uma MongoDB deployment que exija autenticação, use as opções --username e --authenticationDatabase. mongosh solicita uma senha, que oculta conforme você digita.
Por exemplo, para autenticar como usuário alice no banco de dados do admin, execute o seguinte comando:
mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin
Para fornecer uma senha como parte do comando de conexão em vez de usar o prompt, use a opção --password. Use essa opção para uso programático de mongosh, como um driver.
Dica
Para impor a autenticação em uma implantação, consulte Habilitar controle de acesso.
Para provisionar acesso a uma implantação do MongoDB, consulte Usuários do banco de dados.
Conectar com OpenID Connect
Para conectar a uma implantação utilizando o OpenID Connect, utilize a opção --authenticationMechanism e defina-a como MONGODB-OIDC. mongosh redireciona você para um navegador onde é possível inserir as informações de login do seu provedor de identidade.
Observação
Por padrão, omongosh solicita os oidc offline_access escopos e do provedor de identidade (IdP). Se o IdP não suportar oidc nem offline_access nem, mongosh não solicitará esses escopos. Se o IdP oidc offline_accesssuportar, mas não, você deverá autenticar novamente com frequência. Para saber mais, consulte CamposoidcIdentityProviders.
Por exemplo, o seguinte conecta a uma implantação local utilizando o MONGODB-OIDC:
mongosh "mongodb://localhost/" --authenticationMechanism MONGODB-OIDC
Conecte-se com o LDAP
Para se conectar a uma implantação usando o LDAP:
Defina
--usernamepara um nome de usuário que respeite osecurity.ldap.authz.queryTemplateou qualquer modelosecurity.ldap.userToDNMappingconfigurado.Defina
--passwordcom a senha apropriada. Se você não especificar a senha para a opção de linha de comando--password, omongoshsolicitará a você a senha.Configure
--authenticationDatabasepara$external. O argumento$externaldeve ser colocado em aspas simples, não aspas duplas, para evitar que o shell interprete$externalcomo uma variável.Defina
--authenticationMechanismcomoPLAIN.
Aviso
Quando você usa senhas únicas com autenticação LDAP, é recomendável adicionar as de opções string de conexão maxPoolSize=1&srvMaxHosts=1 à sua string de conexão para reduzir o potencial de falhas de conexão.
Inclua o --host e o --port da MongoDB deployment, juntamente com quaisquer outras opções relevantes para sua implantação.
Por exemplo, a operação a seguir autentica uma MongoDB deployment em execução com autenticação e autorização LDAP:
mongosh --username alice@dba.example.com --password --authenticationDatabase '$external' --authenticationMechanism "PLAIN" --host "mongodb.example.com" --port 27017
Conectar a um conjunto de réplicas
Para se conectar a um conjunto de réplicas, você pode:
Especificar explicitamente o nome do conjunto de réplica e membros na connection string.
Importante
Quando um conjunto de réplicas é executado no Docker, ele pode expor apenas um ponto de extremidade do MongoDB. Neste caso, o conjunto de réplicas não é detectável, e especificar directConnection=false pode impedir que seu aplicativo se conecte a ele.
Em um ambiente de teste ou desenvolvimento, você pode se conectar ao conjunto de réplicas especificando directConnection=true na URI de conexão. 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.
Opção 1: formato de lista de sementes de DNS
Para usar o formato de conexão de seedlist de DNS, inclua o modificador +srv em sua connection string.
Por exemplo, para conectar a um conjunto de réplica no server.example.com, execute o seguinte comando:
mongosh "mongodb+srv://server.example.com/"
Observação
Comportamento TLS +srv
Quando você usa o connection string +srv, o MongoDB define automaticamente a opção de conexão--tls como true. Para substituir este comportamento, defina --tls como false.
Opção 2: especificar membros na connection string
Você pode especificar membros individuais do conjunto de réplicas na string de conexão.
Por exemplo, para conectar a um conjunto de réplica de três membros denominado replA, execute o seguinte comando:
mongosh "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"
Observação
Parâmetro DirectConnection adicionado automaticamente
Quando você especifica membros individuais do conjunto de réplicas na connection string, mongosh adiciona automaticamente o parâmetro directConnection=true, a menos que pelo menos uma das seguintes opções seja verdadeira:
O parâmetro de consulta
replicaSetestá presente na connection string.A connection string utiliza o formato de connection string do
mongodb+srv://.A connection string contém uma lista de sementes com vários hosts.
A connection string já contém um parâmetro
directConnection.
Quando directConnection=true, o host especificado no URI de conexão executa todas as operações e mongosh ignora todas as preferências de leitura, incluindo as preferências explicitamente definidas.
Conectar usando TLS
Para se conectar a uma implantação usando TLS, você pode:
Usar o formato de conexão da lista de sementes DNS. O modificador da string de conexão
+srvdefine automaticamente a opçãotlscomotruepara a conexão.Por exemplo, para conectar a um conjunto de réplicas definido por lista de sementes de DNS com
tlshabilitado, execute o seguinte comando:mongosh "mongodb+srv://server.example.com/" Configure a opção
--tlsparatruena connection string.Por exemplo, para habilitar o
tlscom uma opção de connection string, execute o seguinte comando:mongosh "mongodb://mongodb0.example.com:28015/?tls=true" Especifique a opção de linha de comando
--tls.Por exemplo, para conectar a um host remoto com
tlshabilitado, execute o seguinte comando:mongosh "mongodb://mongodb0.example.com:28015" --tls
Conectar a um banco de dados específico
Para se conectar a um banco de dados padrão específico, especifique um banco de dados no seu caminho de URI da string de conexão. Se não for especificado pela string de conexão, o banco de dados padrão é o banco de dados test.
Por exemplo, para conectar a um banco de dados denominado qa no localhost, execute o seguinte comando:
mongosh "mongodb://localhost:27017/qa"
Você pode especificar o banco de dados de autenticação na sua string de conexão usando a opção de conexão authSource. Se especificado, o cliente utiliza este banco de dados para verificar a identidade e as credenciais do usuário. Se authSource não for especificado, o padrão será o banco de dados padrão especificado na string de conexão. Se tanto o authSource quanto o banco de dados padrão não forem especificados, authSource usará como padrão o banco de dados admin.
A seguinte string de conexão define o banco de dados padrão como myDefaultDB e o banco de dados de autenticação como admin:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/myDefaultDB?authSource=admin
Configurações de proxy
Para estabelecer uma conexão com configurações de proxy, você pode usar as seguintes variáveis de ambiente:
Variável | Descrição | Exemplo | |
|---|---|---|---|
| Conexões de provisionamento com URLs | O exemplo a seguir define a variável de ambiente | |
| Conexões proxy para URLs Se você também definir | O exemplo a seguir define a variável de ambiente | |
| Conexões proxy para URLs Se você também definir | O exemplo a seguir define a variável de ambiente | |
| Faça o proxy todas as conexões para o URL especificado. | O exemplo a seguir define a variável de ambiente | |
| Lista separada por vírgulas de nomes de host que devem ser excluídos do proxy. | O exemplo a seguir define a variável de ambiente |
Observação
mongosh O Realm suporta os seguintes tipos de proxy:
Proxies Socks5
Proxies HTTP
Proxies CONNECT
URLs PAC que resolvem para um dos proxies listados anteriormente
Conecte-se a uma implantação diferente
Se você já estiver conectado a uma implantação no MongoDB Shell, você poderá utilizar o Mongo() ou o método connect() para conectar-se a uma implantação diferente no MongoDB Shell.
Para saber como se conectar a uma implantação diferente usando esses métodos, consulte Abrir uma nova conexão.
Verificar conexão atual
Para verificar sua conexão atual ao banco de dados, utilize o método db.getMongo().
O método retorna o URI da string de conexão para sua conexão atual.
Desconectar de uma implementação
Para se desconectar de uma implantação e sair de mongosh, execute uma das seguintes ações:
Digite
.exit,exitouexit().Digite
quitouquit().Pressione
Ctrl+D.Pressione
Ctrl+Cduas vezes.
Implementações não genuínas
A shell exibe uma mensagem de aviso quando você se conecta a instâncias MongoDB não genuínas. As instâncias não originais podem se comportar de forma diferente das instâncias oficiais do MongoDB devido a recursos ausentes, inconsistentes ou incompletos.
Limitações
A autenticação Kerberos não permite
authMechanismProperties=CANONICALIZE_HOST_NAME:true|falsena string de conexão. Em vez disso, use:authMechanismProperties=CANONICALIZE_HOST_NAME:forwardauthMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverseauthMechanismProperties=CANONICALIZE_HOST_NAME:none
mongoshatualmente suporta apenas o compressorzlib. Os seguintes compressores não são suportados:zstdsnappy
A partir de
mongosh2.0.0:Para valores booleanos em strings de conexão, você:
deve usar
trueoufalse.não é possível usar
1,y,yesoutem vez detrue.não pode usar
-1,0,n,nooufem vez defalse.