userver: storages::mongo::Pool Class Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
storages::mongo::Pool Class Reference

#include <userver/storages/mongo/pool.hpp>

Detailed Description

MongoDB client pool.

Use constructor only for tests, in production the pool should be retrieved from the components via components::Mongo::GetPool() or components::MultiMongo::GetPool().

Example usage:

inline void SampleMongoPool(storages::mongo::Pool pool) {
auto in_coll = pool.GetCollection("aggregate_in");
in_coll.InsertMany({
formats::bson::MakeDoc("_id", 1, "x", 0),
formats::bson::MakeDoc("_id", 2, "x", 1),
formats::bson::MakeDoc("_id", 3, "x", 2),
});
auto cursor = in_coll.Aggregate(
MakeArray(MakeDoc("$match", MakeDoc("_id", MakeDoc("$gte", 2))),
MakeDoc("$addFields", MakeDoc("check", true)),
MakeDoc("$out", "aggregate_out")),
EXPECT_FALSE(cursor);
auto out_coll = pool.GetCollection("aggregate_out");
EXPECT_EQ(2, out_coll.CountApprox());
for (const auto& doc : out_coll.Find({})) {
EXPECT_EQ(doc["_id"].As<int>(), doc["x"].As<int>() + 1);
EXPECT_TRUE(doc["check"].As<bool>());
}
}

Definition at line 35 of file pool.hpp.

Public Member Functions

bool HasCollection (const std::string &name) const
 Checks whether a collection exists.
 
Collection GetCollection (std::string name) const
 Returns a handle for the specified collection.
 
void DropDatabase ()
 
std::vector< std::string > ListCollectionNames () const
 Get a list of all the collection names in the associated database.
 
void Ping ()
 

Member Function Documentation

◆ DropDatabase()

void storages::mongo::Pool::DropDatabase ( )

Drops the associated database if it exists. New modifications of collections will attempt to re-create the database automatically.


The documentation for this class was generated from the following file: