MongoDB C++ Driver 4.1.0
Loading...
Searching...
No Matches
mongocxx::v_noabi::read_preference Class Reference

#include <mongocxx/v_noabi/mongocxx/read_preference.hpp>

Description

Describes how MongoDB clients route read operations to the members of a replica set or sharded cluster.

See also

Public Types

enum class  read_mode : std::uint8_t
 Determines which members in a replica set are acceptable to read from. More...
 

Public Member Functions

 read_preference ()
 Constructs a new read_preference with read_mode set to k_primary.
 
 read_preference (read_mode mode)
 Constructs a new read_preference.
 
 read_preference (read_mode mode, bsoncxx::v_noabi::document::view_or_value tags)
 Constructs a new read_preference with tags.
 
 read_preference (read_preference &&) noexcept
 Move constructs a read_preference.
 
 read_preference (read_preference const &)
 Copy constructs a read_preference.
 
 ~read_preference ()
 Destroys a read_preference.
 
bsoncxx::v_noabi::stdx::optional< bsoncxx::v_noabi::document::view > const hedge () const
 Gets the current hedge document to be used for the read preference.
 
read_preferencehedge (bsoncxx::v_noabi::document::view_or_value hedge)
 Sets the hedge document to be used for the read preference. Sharded clusters running MongoDB 4.4 or later can dispatch read operations in parallel, returning the result from the fastest host and cancelling the unfinished operations.
 
bsoncxx::v_noabi::stdx::optional< std::chrono::seconds > max_staleness () const
 Returns the current max staleness setting for this read_preference.
 
read_preferencemax_staleness (std::chrono::seconds max_staleness)
 Sets the max staleness setting for this read_preference. Secondary servers with an estimated lag greater than this value will be excluded from selection under modes that allow secondaries.
 
read_mode mode () const
 Returns the current read_mode for this read_preference.
 
read_preferencemode (read_mode mode)
 Sets a new mode for this read_preference.
 
read_preferenceoperator= (read_preference &&) noexcept
 Move assigns a read_preference.
 
read_preferenceoperator= (read_preference const &)
 Copy assigns a read_preference.
 
bsoncxx::v_noabi::stdx::optional< bsoncxx::v_noabi::document::viewtags () const
 Sets or updates the tag set list for this read_preference.
 
read_preferencetags (bsoncxx::v_noabi::array::view_or_value tag_set_list)
 Sets or updates the tag set list for this read_preference.
 
read_preferencetags (bsoncxx::v_noabi::document::view_or_value tag_set_list)
 Sets or updates the tag set list for this read_preference.
 

Related Symbols

(Note that these are not member symbols.)

bool operator== (read_preference const &, read_preference const &)
 Compares two read_preference objects for (in)-equality.
 
bool operator!= (read_preference const &, read_preference const &)
 Compares two read_preference objects for (in)-equality.
 

Member Enumeration Documentation

◆ read_mode

enum class mongocxx::v_noabi::read_preference::read_mode : std::uint8_t
strong

Determines which members in a replica set are acceptable to read from.

Warning
Read preference tags are not respected when the mode is set to primary.
All read preference modes except primary may return stale data because secondaries replicate operations from the primary with some delay. Ensure that your application can tolerate stale data if you choose to use a non-primary mode.
See also
Enumerator
k_primary 

Only read from a primary node.

k_primary_preferred 

Prefer to read from a primary node.

k_secondary 

Only read from secondary nodes.

k_secondary_preferred 

Prefer to read from secondary nodes.

k_nearest 

Read from the node with the lowest latency irrespective of state.

Constructor & Destructor Documentation

◆ read_preference() [1/5]

mongocxx::v_noabi::read_preference::read_preference ( )

Constructs a new read_preference with read_mode set to k_primary.

◆ read_preference() [2/5]

mongocxx::v_noabi::read_preference::read_preference ( read_mode mode)

Constructs a new read_preference.

Parameters
modeSpecifies the read_mode.
Deprecated
Use mode instead.

◆ read_preference() [3/5]

mongocxx::v_noabi::read_preference::read_preference ( read_mode mode,
bsoncxx::v_noabi::document::view_or_value tags )

Constructs a new read_preference with tags.

Parameters
modeA read_preference read_mode.
tagsA document representing tags to use for the read_preference.
See also
Deprecated
Use tags instead.

◆ read_preference() [4/5]

mongocxx::v_noabi::read_preference::read_preference ( read_preference const & )

Copy constructs a read_preference.

◆ read_preference() [5/5]

mongocxx::v_noabi::read_preference::read_preference ( read_preference && )
noexcept

Move constructs a read_preference.

◆ ~read_preference()

mongocxx::v_noabi::read_preference::~read_preference ( )

Destroys a read_preference.

Member Function Documentation

◆ hedge() [1/2]

bsoncxx::v_noabi::stdx::optional< bsoncxx::v_noabi::document::view > const mongocxx::v_noabi::read_preference::hedge ( ) const

Gets the current hedge document to be used for the read preference.

Deprecated
Hedged reads are deprecated in MongoDB Server version 8.0.
Returns
A hedge document if one was set.

◆ hedge() [2/2]

read_preference & mongocxx::v_noabi::read_preference::hedge ( bsoncxx::v_noabi::document::view_or_value hedge)

Sets the hedge document to be used for the read preference. Sharded clusters running MongoDB 4.4 or later can dispatch read operations in parallel, returning the result from the fastest host and cancelling the unfinished operations.

This may be an empty document or a document of the form { enabled: <boolean> }.

Hedged reads are automatically enabled in MongoDB 4.4+ when using a nearest read preference. To explicitly enable or disable hedging, the hedge document must be passed. An empty document uses server defaults to control hedging, but the enabled key may be set to true or false to explicitly enable or disable hedged reads.

Parameters
hedgeThe hedge document to set. For example, the document { enabled: true }.
Deprecated
Hedged reads are deprecated in MongoDB Server version 8.0.
Returns
A reference to the object on which this member function is being called. This facilitates method chaining.

◆ max_staleness() [1/2]

bsoncxx::v_noabi::stdx::optional< std::chrono::seconds > mongocxx::v_noabi::read_preference::max_staleness ( ) const

Returns the current max staleness setting for this read_preference.

Returns
The optionally current max staleness setting.

◆ max_staleness() [2/2]

read_preference & mongocxx::v_noabi::read_preference::max_staleness ( std::chrono::seconds max_staleness)

Sets the max staleness setting for this read_preference. Secondary servers with an estimated lag greater than this value will be excluded from selection under modes that allow secondaries.

Max staleness must be at least 90 seconds, and also at least the sum (in seconds) of the client's heartbeatFrequencyMS and the server's idle write period, which is 10 seconds. For general use, 90 seconds is the effective minimum. If less, an exception will be thrown when an operation is attempted.

Max staleness may only be used with MongoDB version 3.4 or later. If used with an earlier version, an exception will be thrown when an operation is attempted.

Note
The max-staleness feature is designed to prevent badly-lagging servers from being selected. The staleness estimate is imprecise and shouldn't be used to try to select "up-to-date" secondaries.
Parameters
max_stalenessThe new max staleness setting. It must be positive.
Returns
A reference to the object on which this member function is being called. This facilitates method chaining.
Exceptions
mongocxx::v_noabi::logic_errorif the argument is invalid.

◆ mode() [1/2]

read_mode mongocxx::v_noabi::read_preference::mode ( ) const

Returns the current read_mode for this read_preference.

Returns
The current read_mode.

◆ mode() [2/2]

read_preference & mongocxx::v_noabi::read_preference::mode ( read_mode mode)

Sets a new mode for this read_preference.

Parameters
modeThe new read preference mode.
Returns
A reference to the object on which this member function is being called. This facilitates method chaining.

◆ operator=() [1/2]

read_preference & mongocxx::v_noabi::read_preference::operator= ( read_preference && )
noexcept

Move assigns a read_preference.

◆ operator=() [2/2]

read_preference & mongocxx::v_noabi::read_preference::operator= ( read_preference const & )

Copy assigns a read_preference.

◆ tags() [1/3]

bsoncxx::v_noabi::stdx::optional< bsoncxx::v_noabi::document::view > mongocxx::v_noabi::read_preference::tags ( ) const

Sets or updates the tag set list for this read_preference.

Returns
The optionally set current tag set list.
See also

◆ tags() [2/3]

read_preference & mongocxx::v_noabi::read_preference::tags ( bsoncxx::v_noabi::array::view_or_value tag_set_list)

Sets or updates the tag set list for this read_preference.

Parameters
tag_set_listArray of tag sets.
See also
Returns
A reference to the object on which this member function is being called. This facilitates method chaining.

◆ tags() [3/3]

read_preference & mongocxx::v_noabi::read_preference::tags ( bsoncxx::v_noabi::document::view_or_value tag_set_list)

Sets or updates the tag set list for this read_preference.

Parameters
tag_set_listDocument representing the tag set list.
See also
Returns
A reference to the object on which this member function is being called. This facilitates method chaining.

Friends And Related Symbol Documentation

◆ operator!=

bool operator!= ( read_preference const & ,
read_preference const &  )
friend

Compares two read_preference objects for (in)-equality.

◆ operator==

bool operator== ( read_preference const & ,
read_preference const &  )
friend

Compares two read_preference objects for (in)-equality.


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