class Mongo::ServerSelector::Primary
Encapsulates specifications for selecting the primary server given a list
of candidates.
@since 2.0.0
Constants
- SERVER_FORMATTED_NAME
Name of the this read preference in the server's format.
@since 2.5.0
Public Instance Methods
Whether the hedge option is allowed to be defined for this server preference.
@return [ false ] false
# File lib/mongo/server_selector/primary.rb, line 65 def hedge_allowed? false end
Get the name of the server mode type.
@example Get the name of the server mode for this preference.
preference.name
@return [ Symbol ] :primary
@since 2.0.0
# File lib/mongo/server_selector/primary.rb, line 40 def name :primary end
Whether the secondaryOk bit should be set on wire protocol messages.
I.e. whether the operation can be performed on a secondary server.
@return [ false ] false @api private
# File lib/mongo/server_selector/primary.rb, line 49 def secondary_ok? false end
Convert this server preference definition into a format appropriate
for sending to a MongoDB server (i.e., as a command field).
@return [ Hash ] The server preference formatted as a command field value.
@since 2.5.0
# File lib/mongo/server_selector/primary.rb, line 75 def to_doc { mode: SERVER_FORMATTED_NAME } end
Convert this server preference definition into a value appropriate
for sending to a mongos.
This method may return nil if the read preference should not be sent to a mongos.
@return [ Hash | nil ] The server preference converted to a mongos
command field value.
@since 2.0.0
# File lib/mongo/server_selector/primary.rb, line 89 def to_mongos nil end
Private Instance Methods
# File lib/mongo/server_selector/primary.rb, line 104 def max_staleness_allowed? false end
Select the primary server from a list of candidates.
@return [ Array ] The primary server from the list of candidates.
@since 2.0.0
# File lib/mongo/server_selector/primary.rb, line 100 def select_in_replica_set(candidates) primary(candidates) end