Overview
MongoDB C++ドライバーは 、 MongoDBに接続し、配置に保存されているデータを操作するために使用できるC++パッケージです。 このガイドでは、 C++ドライバーを使用してMongoDB AtlasでホストされているMongoDBクラスターに接続し、クラスター内のデータをクエリするアプリケーションを作成する方法について説明します。
Tip
MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。
このガイドに従って、サンプルC++アプリケーションをMongoDB Atlas配置に接続します。 別のドライバーまたは プログラミング言語を使用してMongoDBに接続する場合は、 公式ドライバーのリストを参照してください。
ダウンロードとインストール
依存関係のインストール
このチュートリアルを開始する前に、開発環境に次の依存関係がインストールされていることを確認してください。
C++17 をサポートするコンパイラー(GCC、Clang、Visual Studio など)
CMax v3.15またはそれ以降
注意
C++17 より前の構成
C++11 はサポートされている最小言語バージョンですが、このチュートリアルでは、「17 C++17 ポリゴンの選択 」セクションで推奨されているC++ 標準ライブラリを使用するようにC++ドライバーを構成します。 C++17 CMAKE_CXX_STANDARDより前の構成のドライバーをインストールする場合は、 構成オプションをC++バージョンに設定します。次に、ドライバーは必要なC++17 機能に bsoncx ライブラリの polyfill 実装を自動的に使用します。
インストール用のドライバーの構成
オペレーティング システムに対応するタブを選択し、 mongo-cxx-driver-r3.11.1/buildディレクトリから次のコマンドを実行します。
cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17
このコマンドは、 mongocxxを/usr/localディレクトリにインストールするように CSpec に指示します。
'C:\<path>\cmake.exe' .. \ -G "Visual Studio <version> <year>" -A "x64" \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_INSTALL_PREFIX=C:\mongo-cxx-driver \
このコマンドは、 mongocxxをC:\mongo-cxx-driverディレクトリにインストールするように CSpec に指示します。 以下のプレースホルダー値を置き換えます。
<path>: CMax 実行可能ファイルへのパス<version>: Visual Studio のバージョン番号<year>: Visual Studio のバージョンに対応する年
ドライバーをビルドしてインストール
オペレーティング システムに対応するタブを選択し、次のコマンドを実行してドライバーをインストールします。
cmake --build . sudo cmake --build . --target install
cmake --build . --config Release cmake --build . --config Debug cmake --install . --config Release cmake --install . --config Debug
注意
Windowsビルド構成
ビルド構成の競合によるWindowsリンク エラーを回避するには、上記のコマンドで Release 構成と Debug 構成の両方をビルドしてインストールします。これらの構成の詳細については、 APIおよび ABI バージョン管理ガイドの 「共有ライブラリ(MSV のみ)」 を参照してください。
これらの手順を完了すると、マシンにC++ドライバーがインストールされます。
MongoDB 配置の作成
MongoDB Atlas では無料階層の MongoDB 配置を作成して、データを保存および管理できます。 MongoDB Atlas は、MongoDB databaseをクラウドでホストおよび管理します。
Atlas で無料の MongoDB 配置を作成
Atlas の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプル データを新しい無料階層 MongoDB 配置にロードします。
これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置が作成され、データベースユーザーの認証情報が作成され、データベースに サンプル データがロードされます 。
接続文字列の作成
MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。
接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。
Atlas でホストされていないインスタンスまたは配置に接続するには、 「 接続ターゲットの選択 」ガイドを参照してください。
MongoDB Atlas 接続文字列を見つける
前のステップ で作成した配置の接続文字列を取得するには、Atlas アカウントにログしてDatabase Connectセクションに移動し、新しい配置の [] ボタンをクリックします。

Connect your applicationセクションに進み、 Driver選択メニューから「C++」を選択し、 Version選択メニューからインストールしたバージョンに最適なバージョンを選択します。
Password (SCRAM)認証メカニズムを選択します。
接続stringのみを表示するには、Include full driver code example オプションの選択を解除します。
これらの手順を完了すると、 クラスターに対応する接続string Atlasが作成されます。
サンプル クエリの実行
C++ドライバーアプリケーションの作成
次のコードをコピーして、 quickstart.cppファイルに貼り付けます。このコードは、 sample_mflixデータベース内のmoviesコレクションをクエリします。
#include <cstdint> #include <iostream> #include <vector> #include <bsoncxx/builder/basic/document.hpp> #include <bsoncxx/json.hpp> #include <mongocxx/client.hpp> #include <mongocxx/instance.hpp> #include <mongocxx/uri.hpp> using bsoncxx::builder::basic::kvp; using bsoncxx::builder::basic::make_document; int main() { mongocxx::instance instance; mongocxx::uri uri("<connection string>"); mongocxx::client client(uri); auto db = client["sample_mflix"]; auto collection = db["movies"]; auto result = collection.find_one(make_document(kvp("title", "The Shawshank Redemption"))); std::cout << bsoncxx::to_json(*result) << std::endl; }
接続文字列の割り当て
<connection string> プレースホルダーを、このガイドの接続文字列の作成ステップからコピーした接続文字列に置き換えます。
C++アプリケーションの実行
shellで次のコマンドを実行し、このアプリケーションをコンパイルして実行します。
c++ --std=c++17 quickstart.cpp $(pkg-config --cflags --libs libmongocxx) -o ./app.out ./app.out
Tip
MacOS ユーザーは、上記のコマンドを実行中すると、次のエラーが表示される場合があります。
dyld[54430]: Library not loaded: @rpath/libmongocxx._noabi.dylib
このエラーを解決するには、次のコードに示すように、 -Wl,-rpathリンク オプションを使用して@rpathを設定します。
c++ --std=c++17 quickstart.cpp -Wl,-rpath,/usr/local/lib/ $(pkg-config --cflags --libs libmongocxx) -o ./app.out ./app.out
コマンドライン出力には、検索された映画ドキュメントの詳細が含まれます。
{ "_id" : { "$oid" : "573a1399f29313caabceeb20" }, "plot" : "Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.", ... "title" : "The Shawshank Redemption", ...
エラーが発生した場合や出力が表示されない場合は、quickstart.cpp ファイルに適切な接続stringが指定されており、サンプル データがロードされていることを確認してください。
これらの手順を完了すると、ドライバーを使用して MongoDB 配置に接続し、サンプル データに対してクエリを実行し、結果を出力する動作するアプリケーションが作成されます。
次のステップ
クイック スタート チュートリアルを完了しました。
注意
このチュートリアルで問題が発生した場合は、 MongoDB Stack Overflowページ または MongoDB Reddit Community でサポートを依頼するか、このページの右側または右下にある Rate this pageタブを使用してフィードバックを送信してください。
このチュートリアルでは、 MongoDB AtlasでホストされているMongoDBデプロイに接続し、クエリに一致するドキュメントを検索するC++アプリケーションを作成しました。
次のリソースからC++ドライバーの詳細を学習するには:
「データの読み取り」セクションでは、読み取り操作の実行方法を学びます。
「 MongoDB へのデータの書込み」セクションで、書込み操作の実行方法を学びます。
