Docs Menu
Docs Home
/ / /
C++ ドライバー

MongoDB に接続する

項目一覧

  • Overview
  • サンプル アプリケーション
  • 接続
  • Atlas
  • ローカル配置
  • レプリカセット
  • トランスポート層セキュリティ (TLS)
  • TLS の有効化
  • 証明機関(CA)ファイルの指定
  • OCSP チェックの無効化
  • 証明書失効リスト(CRL)の指定
  • クライアント証明書の提示
  • 証明書鍵ファイルのパスワードの指定
  • AllowInsecureTls
  • 証明書検証の無効化
  • ホスト名検証を無効化する
  • ネットワーク圧縮
  • 圧縮アルゴリズム
  • zlibCompressionLevel
  • Stable API

このページには、 C++アプリケーションをさまざまな設定でMongoDBに接続する方法を示すコード例が含まれています。

Tip

このページの接続オプションの詳細については、各セクションに記載されているリンクを参照してください。

このページの接続例を使用するには、コード例をサンプル アプリケーションまたは独自のアプリケーションにコピーします。 <hostname>など、コード例にあるすべてのプレースホルダーを、MongoDB 配置に関連する値に置き換えてください。

次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。

  1. プロジェクトが C++ ドライバーをインポートできるロケーションにC++ドライバーがインストールされていることを確認してください。

  2. 次のコードをコピーし、プロジェクト内の新しい.cppファイルに貼り付けます。

  3. このページからコード例をコピーし、ファイルのハイライトされたセクション内に貼り付けます。

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}

次のコードは、 MongoDB Atlas配置に接続する方法を示しています。

mongocxx::uri uri("<Atlas connection string>");
mongocxx::client client(uri);

Atlas 配置への接続の詳細については、 接続ターゲットガイドの Atlasを参照してください。

次のコードは、 MongoDBデプロイに接続する方法を示しています。

mongocxx::uri uri("mongodb://localhost:27017/");
mongocxx::client client(uri);

ローカル配置への接続の詳細については、 接続ターゲットガイドの「ローカル配置」を参照してください。

次のコードは、レプリカセット配置に接続する方法を示しています。

mongocxx::uri uri("mongodb://<replica set member>:<port>/?replicaSet=<replica set name>");
mongocxx::client client(uri);

レプリカセットへの接続の詳細については、 接続ターゲットガイドの「レプリカセット」を参照してください。

次のコードは、 MongoDBインスタンスへの接続に対して TLS を有効にする方法を示しています。

mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true");
mongocxx::client client(uri);

TLS を有効にする方法の詳細については、TLS 構成ガイドの「 TLSを有効にする 」を参照してください。

次のコードは、 MongoDBインスタンスへの接続用の CAファイルへのパスを指定する方法を示しています。

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");

CA ファイルの指定の詳細については、TLS 構成ガイドの「 CA ファイルの指定」を参照してください。

次のコードは、ドライバーが OCSP エンドポイントに接続するのを防ぐ方法を示しています。

mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsDisableOCSPEndpointCheck=true");
mongocxx::client client(uri);

OCSP チェックを無効にする方法の詳細については、TLS 構成ガイドの「 OCSP 」を参照してください。

次のコードは、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);

CRL の指定の詳細については、TLS 構成ガイドの「証明書失効リスト」を参照してください。

次のコードは、ドライバーが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");

クライアント証明書の指定の詳細については、TLS 構成ガイドの「クライアント証明書の提示」を参照してください。

次のコードは、クライアント証明書のパスワードを指定する方法を示しています。

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>");

キー ファイルのパスワードの指定の詳細については、TLS 構成ガイドの「キー パスワードの指定」を参照してください。

次のコードは、証明書検証を無効にする方法を示しています。

mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsInsecure=true");
mongocxx::client client(uri);

安全でない TLS の許可の詳細については、TLS 構成ガイドの「 安全でない TLS を許可する 」を参照してください。

次のコードは、証明書の検証を無効にする方法を示しています。

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");

証明書検証を無効にする方法の詳細については、TLS 構成ガイドの「 安全でない TLS の許可」を参照してください。

次のコードは、ホスト名検証を無効にする方法を示しています。

mongocxx::uri uri("mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidHostnames=true");
mongocxx::client client(uri);

ホスト名検証を無効にする方法の詳細については、TLS 構成ガイドの「 安全でない TLS を許可する 」を参照してください。

次のコードは、各 圧縮アルゴリズムを指定してMongoDBインスタンスへの接続の圧縮を有効にする方法を示しています。

mongocxx::uri uri("mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib");
mongocxx::client client(uri);

圧縮アルゴリズムの指定の詳細については、ネットワーク圧縮ガイドの「 圧縮アルゴリズムの指定 」を参照してください。

次のコードは、 zlib圧縮アルゴリズムを指定し、その圧縮レベルを設定する方法を示しています。

mongocxx::uri uri("mongodb://<hostname>:<port>/?compressors=zlib&zlibCompressionLevel=1");
mongocxx::client client(uri);

zlib 圧縮レベルの設定の詳細については、ネットワーク圧縮ガイドの「圧縮アルゴリズムの指定 」を参照してください。

次のコードは、 MongoDBインスタンスへの接続に対して Stable APIを有効にする方法を示しています。

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);

Stable APIの詳細については、「 Stable APIガイド」を参照してください。

戻る

次のステップ