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 はサポートされている最小言語バージョンですが、このチュートリアルでは、C++17 Polyfillの選択 セクションで推奨されている C++17 標準ライブラリを使用するように C++ドライバー を構成します。C++17 より前の構成のドライバーをインストールする場合は、CMAKE_CXX_STANDARD 構成オプションをC++バージョンに設定します。次に、ドライバーは必要なC++17 機能に bsoncxx ライブラリの 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デプロイを作成します。
MongoDB の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプルデータを新しい無料階層の MongoDB 配置にロードします。
これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置が作成され、データベースユーザーの認証情報が作成され、データベースに サンプル データがロードされます 。
接続文字列の作成
MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。
接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。
Atlas でホストされていないインスタンスまたは配置に接続するには、 「 接続ターゲットの選択 」ガイドを参照してください。
MongoDB Atlas接続文字列を見つけます。
Clusters前のステップで作成した配置の接続文字列を取得するには、AtlasDatabase アカウントにログ、Connect セクションの下の ページに移動します。新しい配置で [] ボタンをクリックします。

データベースユーザーをまだ設定していない場合、 MongoDB は新しいユーザーを作成して設定するように要求します。
Connect to your application セクションの下の Drivers ボタンをクリックし、Driver 選択メニューから「C++」を選択し、Version 選択メニューからインストールしたバージョンに最適化されたバージョンを選択します。
接続文字列のみを表示するには、View full code sample オプションが選択されていないことを確認します。
これらの手順を完了すると、 クラスターに対応する接続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 へのデータの書込み」セクションで、書込み操作の実行方法を学びます。
