Read Data from MongoDB
On this page
Overview
On this page, you can see copyable code examples that show common C++ driver methods for retrieving documents.
Tip
To learn more about any of the methods shown on this page, see the link provided in each section.
To use an example from this page, copy the code example into the
sample application or your own application.
Be sure to replace all placeholders, such as <connection string>
, with
the relevant values for your MongoDB deployment.
Sample Application
You can use the following sample application to test the code examples on this page. To use the sample application, perform the following steps:
Ensure you have the C++ driver installed in a location from which your project can import it.
Copy the following code and paste it into a new
.cpp
file within your project.Copy a code example from this page and paste it within the highlighted section of the file.
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 }
Find One
The following code shows how to retrieve a single document from a collection that matches the specified criteria:
auto result = collection.find_one(make_document(kvp("<field name>", "<value>"))); std::cout << bsoncxx::to_json(*result) << std::endl;
To learn more about the find_one()
method, see the Find One Document
section in the Retrieve Data guide.
Find Multiple
The following code shows how to retrieve all documents from a collection that match the specified criteria:
auto results = collection.find(make_document(kvp("<field name>", "<value>"))); for(auto&& doc : results) { std::cout << bsoncxx::to_json(doc) << std::endl; }
To learn more about the find()
method, see the Find Multiple Documents
section in the Retrieve Data guide.
Count Documents in a Collection
The following code shows how to count the number of documents in a collection:
auto result = collection.count_documents({}); std::cout << result << std::endl;
To learn more about the count_documents()
method, see the
Retrieve an Accurate Count section in the Count Documents guide.
Count Documents Returned from a Query
The following code shows how to count documents in a collection that match the specified criteria:
auto result = collection.count_documents(make_document(kvp("<field name>", "<value>"))); std::cout << result << std::endl;
To learn more about the count_documents()
method, see the
Retrieve an Accurate Count section in the Count Documents guide.
Estimated Document Count
The following code shows how to retrieve an estimated count of the number of documents in a collection:
auto result = collection.estimated_document_count(); std::cout << result << std::endl;
To learn more about the estimated_document_count()
method, see the
Retrieve an Estimated Count section in the Count Documents guide.
Retrieve Distinct Values
The following code shows how to retrieve the unique values of a field for documents that match the specified criteria:
auto results = collection.distinct("<field name>", "<filter>"); for(auto&& doc : results) { std::cout << bsoncxx::to_json(doc) << std::endl; }
To learn more about the distinct()
method, see the
Retrieve Distinct Field Values guide.
Monitor Data Changes
The following code shows how to monitor and print changes to a collection:
auto stream = collection.watch(); while (true) { for (const auto& event : stream) { std::cout << bsoncxx::to_json(event) << std::endl; } }
To learn more about the watch()
method, see the
Monitor Data Changes guide.