class Mongo::ServerSelector::Nearest
Encapsulates specifications for selecting near servers given a list
of candidates.
@since 2.0.0
Public Instance Methods
name()
click to toggle source
Get the name of the server mode type.
@example Get the name of the server mode for this preference.
preference.name
@return [ Symbol ] :nearest
@since 2.0.0
# File lib/mongo/server_selector/nearest.rb, line 33 def name :nearest end
slave_ok?()
click to toggle source
Whether the slaveOk bit should be set on wire protocol messages.
I.e. whether the operation can be performed on a secondary server.
@return [ true ] true
@since 2.0.0
# File lib/mongo/server_selector/nearest.rb, line 43 def slave_ok? true end
to_mongos()
click to toggle source
Convert this server preference definition into a format appropriate
for a mongos server.
@example Convert this server preference definition into a format
for mongos. preference = Mongo::ServerSelector::Nearest.new preference.to_mongos
@return [ Hash ] The server preference formatted for a mongos server.
@since 2.0.0
# File lib/mongo/server_selector/nearest.rb, line 67 def to_mongos preference = { :mode => 'nearest' } preference.merge!({ :tags => tag_sets }) unless tag_sets.empty? preference end
Private Instance Methods
select(candidates)
click to toggle source
Select the near servers taking into account any defined tag sets and
local threshold between the nearest server and other servers.
@example Select nearest servers given a list of candidates.
preference = Mongo::Serverreference::Nearest.new preference.select_server(cluster)
@return [ Array ] The nearest servers from the list of candidates.
@since 2.0.0
# File lib/mongo/server_selector/nearest.rb, line 85 def select(candidates) if tag_sets.empty? near_servers(candidates) else near_servers(match_tag_sets(candidates)) end end