userver: storages::mongo::Pool Class Reference
Loading...
Searching...
No Matches
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: