Docs Menu

C++ ドライバーを使い始める

MongoDB C++ドライバーは 、 MongoDBに接続し、配置に保存されているデータを操作するために使用できるC++パッケージです。 このガイドでは、 C++ドライバーを使用してMongoDB AtlasでホストされているMongoDBクラスターに接続し、クラスター内のデータをクエリするアプリケーションを作成する方法について説明します。

Tip

MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。

このガイドに従って、サンプルC++アプリケーションをMongoDB Atlas配置に接続します。 別のドライバーまたは プログラミング言語を使用してMongoDBに接続する場合は、 公式ドライバーのリストを参照してください。

1

このチュートリアルを開始する前に、開発環境に次の依存関係がインストールされていることを確認してください。

注意

C++17 より前の構成

C++11 はサポートされている最小言語バージョンですが、このチュートリアルでは、 C++ ポリゴン構成セクションで推奨されているC++ 標準ライブラリを使用するようにC++ドライバーを構成します。1717C++17 より前の構成のドライバーをインストールする場合は、CMAKE_CXX_STANDARD 構成オプションをC++バージョンに設定します。 次に、ドライバーは必要なC++17 機能に bsoncx ライブラリの polyfill 実装を自動的に使用します。

2

リポジトリから最新バージョンのC++ ドライバーをダウンロードするには、ルートディレクトリからmongo-cxx-driverGithub shellで次のコマンドを実行します。

curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r4.0.0/mongo-cxx-driver-r4.0.0.tar.gz
tar -xzf mongo-cxx-driver-r4.0.0.tar.gz
cd mongo-cxx-driver-r4.0.0/build
3

オペレーティング システムに対応するタブを選択し、 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 \

このコマンドは、 mongocxxC:\mongo-cxx-driverディレクトリにインストールするように CSpec に指示します。 以下のプレースホルダー値を置き換えます。

  • <path>: CMax 実行可能ファイルへのパス

  • <version>: Visual Studio のバージョン番号

  • <year>: Visual Studio のバージョンに対応する年

4

オペレーティング システムに対応するタブを選択し、次のコマンドを実行してドライバーをインストールします。

cmake --build .
sudo cmake --build . --target install
cmake --build . --config RelWithDebInfo
cmake --build . --target install --config RelWithDebInfo

これらの手順を完了すると、マシンにC++ドライバーがインストールされます。

MongoDB Atlas では無料階層の MongoDB 配置を作成して、データを保存および管理できます。 MongoDB Atlas は、MongoDB databaseをクラウドでホストおよび管理します。

1

Atlas の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプル データを新しい無料階層 MongoDB 配置にロードします。

2

データベースユーザーを作成したら、そのユーザーのユーザー名とパスワードを安全な場所に保存して、後の手順で使用します。

これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置が作成され、データベースユーザーの認証情報が作成され、データベースに サンプル データがロードされます 。

MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。

接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。

Atlas でホストされていないインスタンスまたは配置に接続するには、 「 接続ターゲットの選択 」ガイドを参照してください。

1

前のステップ で作成した配置の接続文字列を取得するには、Atlas アカウントにログしてDatabase Connectセクションに移動し、新しい配置の [] ボタンをクリックします。

Atlas UI のクラスター セクションの接続ボタン

Connect your applicationセクションに進み、 Driver選択メニューから「C++」を選択し、 Version選択メニューからインストールしたバージョンに最適なバージョンを選択します。

Password (SCRAM)認証メカニズムを選択します。

接続stringのみを表示するには、Include full driver code example オプションの選択を解除します。

2

次のスクリーンショットに示すように、接続文字列の右側にある ボタンをクリックして、接続stringをクリップボードにコピーします。

UIの接続 の横にあるコピーボタンstringAtlas
3
この接続stringをテキスト エディターのファイルに貼り付けます
<username><password>のプレースホルダーを、データベースユーザーのユーザー名とパスワードに置き換えます。

このファイルを安全な場所に保存して、次の手順で使用します。

これらの手順を完了すると、 クラスターに対応する接続string Atlasが作成されます。

1

ルートディレクトリから、 shellで次のコマンドを実行して、このプロジェクト用に cpp-quickstart というディレクトリを作成します。

mkdir cpp-quickstart

次のコマンドを実行して、 cpp-quickstartディレクトリにquickstart.cppアプリケーションファイルを作成します。

cd cpp-quickstart
touch quickstart.cpp
2

次のコードをコピーして、 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;
}
3

<connection string> プレースホルダーを、このガイドの接続文字列の作成ステップからコピーした接続文字列に置き換えます。

4

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++ドライバーの詳細を学習するには: