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

MongoDB に接続する

1

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

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

プレースホルダーを、このガイドの 接続文字列の string<connection string>ステップからコピーした接続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タブを使用してフィードバックを送信してください。

戻る

接続文字列の作成