Conecte-se ao MongoDB
Nesta página
- Visão geral
- Aplicativo de amostra
- Conexão
- Atlas
- Sistemas locais
- Conjunto de réplicas
- Segurança da camada de transporte (TLS)
- Habilitar TLS
- Especifique um arquivo de autoridade de certificação (CA)
- Desativar verificações OCSP
- Especifique uma lista de revogação de certificados (CRL)
- Apresentar um Certificado de Cliente
- Forneça uma senha para o arquivo de chave de certificado
- Permitir TLS Inseguro
- Desativar validação do certificado
- Desativar verificação de nome de host
- Compactação de rede
- Algoritmos de compressão
- zlibNível de compactação
- Stable API
Visão geral
Esta página contém exemplos de código que mostram como conectar seu aplicação C++ ao MongoDB com várias configurações.
Dica
Para saber mais sobre as opções de conexão nesta página, consulte o link fornecido em cada seção.
Para usar um exemplo de conexão desta página, copie o exemplo de código noaplicativo de amostra ou em seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <hostname>
, pelos valores relevantes para sua implantação do MongoDB.
Aplicativo de amostra
Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:
Verifique se você tem o driver C++ instalado em um local de onde seu projeto possa importá-lo.
Copie o código a seguir e cole-o em um novo arquivo
.cpp
dentro do seu projeto.Copie um exemplo de código desta página e cole-o na seção destacada do arquivo.
1 2 3 4 5 6 7 8 9 10 int main() 11 { 12 mongocxx::instance instance; 13 14 try 15 { 16 // Start example code here 17 18 // End example code here 19 20 auto admin = client["admin"]; 21 admin.run_command(bsoncxx::from_json(R"({ "ping": 1 })")); 22 23 std::cout << "Successfully pinged the MongoDB server." << std::endl; 24 } 25 catch (const mongocxx::exception &e) 26 { 27 std::cout << "An exception occurred: " << e.what() << std::endl; 28 return EXIT_FAILURE; 29 } 30 31 return EXIT_SUCCESS; 32 }
Conexão
Atlas
O seguinte código mostra como se conectar a uma implantação do MongoDB Atlas :
mongocxx::uri uri("<Atlas connection string>"); mongocxx::client client(uri);
Para saber mais sobre como se conectar a um sistema do Atlas , consulte Atlas no guia Alvos de conexão.
Sistemas locais
O código a seguir mostra como se conectar a um MongoDB deployment local:
mongocxx::uri uri("mongodb://localhost:27017/"); mongocxx::client client(uri);
Para saber mais sobre como se conectar a uma implantação local, consulte Implantações locais no guia Alvos de conexão.
Conjunto de réplicas
O código a seguir mostra como se conectar a um sistema de conjunto de réplicas:
mongocxx::uri uri("mongodb://<replica set member>:<port>/?replicaSet=<replica set name>"); mongocxx::client client(uri);
Para saber mais sobre como se conectar a um conjunto de réplicas, consulte Conjuntos de réplicas no guia Alvos de conexão.
Segurança da camada de transporte (TLS)
Habilitar TLS
O código a seguir mostra como habilitar o TLS para a conexão com sua instância do MongoDB :
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true"); mongocxx::client client(uri);
Para saber mais sobre como habilitar o TLS, consulte Habilitar TLS no guia de configuração do TLS.
Especifique um arquivo de autoridade de certificação (CA)
O código a seguir mostra como especificar o caminho do arquivo CA para a conexão com a instância do MongoDB :
mongocxx::options::client client_options; mongocxx::options::tls tls_options; tls_options.pem_file("/path/to/file.pem"); client_options.tls_opts(tls_options); mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true"); mongocxx::client client(uri, client_options);
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsCAFile=/path/to/file.pem");
Para saber mais sobre como especificar um arquivo CA, consulte Especificar um arquivo CA no guia de configuração TLS.
Desativar verificações OCSP
O seguinte código mostra como impedir que o driver entre em contato com o endpoint OCSP:
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsDisableOCSPEndpointCheck=true"); mongocxx::client client(uri);
Para saber mais sobre como desativar as verificações OCSP, consulte OCSP no guia de configuração do TLS.
Especifique uma lista de revogação de certificados (CRL)
O seguinte código mostra como instruir o driver a verificar o certificado do servidor em relação a uma CRL:
mongocxx::options::client client_options; mongocxx::options::tls tls_options; tls_options.crl_file("<path to your CRL file>"); client_options.tls_opts(tls_options); mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true"); mongocxx::client client(uri, client_options);
Para saber mais sobre como especificar uma CRL, consulte Lista de revogação de certificados no guia de configuração do TLS.
Apresentar um Certificado de Cliente
O seguinte código mostra como especificar o certificado do cliente que o driver apresenta para sua implantação MongoDB :
mongocxx::options::client client_options; mongocxx::options::tls tls_options; tls_options.pem_file("/path/to/file.pem"); client_options.tls_opts(tls_options); mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true"); mongocxx::client client(uri, client_options);
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/file.pem");
Para saber mais sobre como especificar um certificado de cliente, consulte Apresentar um certificado de cliente no guia de configuração do TLS.
Forneça uma senha para o arquivo de chave de certificado
O seguinte código mostra como especificar a senha do seu certificado de cliente :
mongocxx::options::client client_options; mongocxx::options::tls tls_options; tls_options.pem_file("/path/to/file.pem"); tls_options.pem_password("<password>"); client_options.tls_opts(tls_options); mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true"); mongocxx::client client(uri, client_options);
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/file.pem&tlsCertificateKeyFilePassword=<password>");
Para saber mais sobre como fornecer uma senha de arquivo de chave, consulte Fornecer uma senha de chave no guia de configuração do TLS.
Permitir TLS Inseguro
O seguinte código mostra como desabilitar a verificação do certificado:
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsInsecure=true"); mongocxx::client client(uri);
Para saber mais sobre como permitir TLS inseguro, consulte Permitir TLS Inseguro no guia de configuração do TLS.
Desativar validação do certificado
O seguinte código mostra como desabilitar a validação do certificado:
mongocxx::options::client client_options; mongocxx::options::tls tls_options; tls_options.allow_invalid_certificates(true); client_options.tls_opts(tls_options); mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true"); mongocxx::client client(uri, client_options);
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidCertificates=true");
Para saber mais sobre como desativar a validação do certificado, consulte Permitir TLS inseguro no guia de configuração do TLS.
Desativar verificação de nome de host
O seguinte código mostra como desabilitar a verificação de nome de host:
mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidHostnames=true"); mongocxx::client client(uri);
Para saber mais sobre como desativar a verificação de nome de host, consulte Permitir TLS inseguro no guia de configuração de TLS.
Compactação de rede
Algoritmos de compressão
O código a seguir mostra como habilitar a compressão para a conexão com sua instância do MongoDB especificando cada algoritmo de compressão:
mongocxx::uri uri("mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib"); mongocxx::client client(uri);
Para saber mais sobre como especificar algoritmos de compressão, consulte Especificar algoritmos de compressão no guia Compressão de rede.
zlibNível de compactação
O seguinte código mostra como especificar o algoritmo de compressão zlib
e definir seu nível de compressão:
mongocxx::uri uri("mongodb://<hostname>:<port>/?compressors=zlib&zlibCompressionLevel=1"); mongocxx::client client(uri);
Para saber mais sobre como definir o nível de compressão zlib, consulte Especificar algoritmos de compressão no guia Compressão de rede.
Stable API
O seguinte código mostra como habilitar a Stable API para a conexão com sua instância do MongoDB :
mongocxx::uri uri("<connection string>"); mongocxx::options::client client_options; mongocxx::options::server_api server_api_options(mongocxx::options::server_api::version::k_version_1); client_options.server_api_opts(server_api_options); mongocxx::client client(uri, client_options);
Para saber mais sobre a Stable API, consulte o guia da Stable API .