Menu Docs
Página inicial do Docs
/ / /
Driver C++

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

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.

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:

  1. Verifique se você tem o driver C++ instalado em um local de onde seu projeto possa importá-lo.

  2. Copie o código a seguir e cole-o em um novo arquivo .cpp dentro do seu projeto.

  3. Copie um exemplo de código desta página e cole-o na seção destacada do arquivo.

1#include <bsoncxx/json.hpp>
2
3#include <mongocxx/client.hpp>
4#include <mongocxx/exception/exception.hpp>
5#include <mongocxx/instance.hpp>
6#include <mongocxx/uri.hpp>
7
8#include <iostream>
9
10int 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}

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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 .

Voltar

Próximos passos