C++ ドライバーを使い始める
項目一覧
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++ ポリゴン構成セクションで推奨されているC++ 標準ライブラリを使用するようにC++ドライバーを構成します。1717C++17 より前の構成のドライバーをインストールする場合は、CMAKE_CXX_STANDARD
構成オプションをC++バージョンに設定します。 次に、ドライバーは必要なC++17 機能に bsoncx ライブラリの polyfill 実装を自動的に使用します。
インストール用のドライバーの構成
オペレーティング システムに対応するタブを選択し、 mongo-cxx-driver-r4.0.0/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 のバージョンに対応する年
これらの手順を完了すると、マシンに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 Community フォーラムでサポートを依頼するか、このページの右側または右下にある Rate this page タブを使用してフィードバックを送信してください。
このチュートリアルでは、 MongoDB AtlasでホストされているMongoDBデプロイに接続し、クエリに一致するドキュメントを検索するC++アプリケーションを作成しました。
次のリソースからC++ドライバーの詳細を学習するには:
「データの読み取り」セクションでは、読み取り操作の実行方法を学びます。
「 MongoDB へのデータの書込み」セクションで、書込み操作の実行方法を学びます。