MongoDB からのデータの読み取り
項目一覧
Overview
このページでは、ドキュメントを検索するための一般的なC++ドライバー メソッドを示すコピー可能なコード例を確認できます。
Tip
このページに記載されているメソッドの詳細については、各セクションに提供されているリンクを参照してください。
このページの例を使用するには、コード例をサンプルアプリケーションまたは 独自のアプリケーションにコピーします。 <connection string>
などのすべてのプレースホルダーを、 MongoDBデプロイに関連する値に置き換えてください。
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。
プロジェクトが C++ ドライバーをインポートできるロケーションにC++ドライバーがインストールされていることを確認してください。
次のコードをコピーし、プロジェクト内の新しい
.cpp
ファイルに貼り付けます。このページからコード例をコピーし、ファイルのハイライトされたセクション内に貼り付けます。
1 2 3 4 5 6 7 8 9 10 using bsoncxx::builder::basic::kvp; 11 using bsoncxx::builder::basic::make_document; 12 13 int main() { 14 try { 15 mongocxx::instance instance; 16 17 mongocxx::uri uri("<connection string>"); 18 mongocxx::client client(uri); 19 20 auto database = client["<database name>"]; 21 auto collection = database["<collection name>"]; 22 23 // Start example code here 24 25 // End example code here 26 27 } catch (const mongocxx::exception& e) { 28 std::cout << "An exception occurred: " << e.what() << "\n"; 29 return EXIT_FAILURE; 30 } 31 32 return EXIT_SUCCESS; 33 }
findOne
次のコードは、指定された条件に一致する単一のドキュメントをコレクションから検索する方法を示しています。
auto result = collection.find_one(make_document(kvp("<field name>", "<value>"))); std::cout << bsoncxx::to_json(*result) << std::endl;
find_one()
メソッドの詳細については、「データ取得ガイド」の 1 つのドキュメントの検索セクションを参照してください。
複数検索
次のコードは、指定された条件に一致するすべてのドキュメントをコレクションから検索する方法を示しています。
auto results = collection.find(make_document(kvp("<field name>", "<value>"))); for(auto&& doc : results) { std::cout << bsoncxx::to_json(doc) << std::endl; }
find()
メソッドの詳細については、 データ取得ガイドの「 複数のドキュメントの検索 」セクションを参照してください。
コレクション内のドキュメントをカウント
次のコードは、コレクション内のドキュメントの数をカウントする方法を示しています。
auto result = collection.count_documents({}); std::cout << result << std::endl;
count_documents()
メソッドの詳細については、 ドキュメントのカウントガイドの「正確なカウントの取得」セクションを参照してください。
クエリから返されたドキュメントをカウントする
次のコードは、指定された条件に一致するコレクション内のドキュメントをカウントする方法を示しています。
auto result = collection.count_documents(make_document(kvp("<field name>", "<value>"))); std::cout << result << std::endl;
count_documents()
メソッドの詳細については、 ドキュメントのカウントガイドの「正確なカウントの取得」セクションを参照してください。
推定ドキュメント数
次のコードは、コレクション内のドキュメント数の推定値を取得する方法を示しています。
auto result = collection.estimated_document_count(); std::cout << result << std::endl;
estimated_document_count()
メソッドの詳細については、 ドキュメントガイドの「推定カウントの取得」セクションを参照してください。
Retrieve Distinct Values
次のコードは、指定された条件に一致するドキュメントのフィールドの一意の値を検索する方法を示しています。
auto results = collection.distinct("<field name>", "<filter>"); for(auto&& doc : results) { std::cout << bsoncxx::to_json(doc) << std::endl; }
distinct()
メソッドの詳細については、「個別のフィールド値の取得 」ガイドを参照してください。
データの変更を監視
次のコードは、コレクションの変更を監視して出力する方法を示しています。
auto stream = collection.watch(); while (true) { for (const auto& event : stream) { std::cout << bsoncxx::to_json(event) << std::endl; } }
watch()
メソッドの詳細については、「データの変更を監視 」のガイドを参照してください。