mongo-driver: Index | Files

package readpref

import ""


Package Files

mode.go options.go readpref.go


var ErrInvalidTagSet = errors.New("an even number of tags must be specified")

ErrInvalidTagSet indicates that an invalid set of tags was specified.

type Mode Uses

type Mode uint8

Mode indicates the user's preference on reads.

const (

    // PrimaryMode indicates that only a primary is
    // considered for reading. This is the default
    // mode.
    PrimaryMode Mode
    // PrimaryPreferredMode indicates that if a primary
    // is available, use it; otherwise, eligible
    // secondaries will be considered.
    // SecondaryMode indicates that only secondaries
    // should be considered.
    // SecondaryPreferredMode indicates that only secondaries
    // should be considered when one is available. If none
    // are available, then a primary will be considered.
    // NearestMode indicates that all primaries and secondaries
    // will be considered.

Mode constants

func ModeFromString Uses

func ModeFromString(mode string) (Mode, error)

ModeFromString returns a mode corresponding to mode.

func (Mode) IsValid Uses

func (mode Mode) IsValid() bool

IsValid checks whether the mode is valid.

func (Mode) String Uses

func (mode Mode) String() string

String returns the string representation of mode.

type Option Uses

type Option func(*ReadPref) error

Option configures a read preference

func WithHedgeEnabled Uses

func WithHedgeEnabled(hedgeEnabled bool) Option

WithHedgeEnabled specifies whether or not hedged reads should be enabled in the server. This feature requires MongoDB server version 4.4 or higher. For more information about hedged reads, see If not specified, the default is to not send a value to the server, which will result in the server defaults being used.

func WithMaxStaleness Uses

func WithMaxStaleness(ms time.Duration) Option

WithMaxStaleness sets the maximum staleness a server is allowed.

func WithTagSets Uses

func WithTagSets(tagSets ...tag.Set) Option

WithTagSets sets the tag sets used to match a server. The last call to WithTags or WithTagSets overrides all previous calls to either method.

func WithTags Uses

func WithTags(tags ...string) Option

WithTags sets a single tag set used to match a server. The last call to WithTags or WithTagSets overrides all previous calls to either method.

type ReadPref Uses

type ReadPref struct {
    // contains filtered or unexported fields

ReadPref determines which servers are considered suitable for read operations.

func Nearest Uses

func Nearest(opts ...Option) *ReadPref

Nearest constructs a read preference with a NearestMode.

func New Uses

func New(mode Mode, opts ...Option) (*ReadPref, error)

New creates a new ReadPref.

func Primary Uses

func Primary() *ReadPref

Primary constructs a read preference with a PrimaryMode.

func PrimaryPreferred Uses

func PrimaryPreferred(opts ...Option) *ReadPref

PrimaryPreferred constructs a read preference with a PrimaryPreferredMode.

func Secondary Uses

func Secondary(opts ...Option) *ReadPref

Secondary constructs a read preference with a SecondaryMode.

func SecondaryPreferred Uses

func SecondaryPreferred(opts ...Option) *ReadPref

SecondaryPreferred constructs a read preference with a SecondaryPreferredMode.

func (*ReadPref) HedgeEnabled Uses

func (r *ReadPref) HedgeEnabled() *bool

HedgeEnabled returns whether or not hedged reads are enabled for this read preference. If this option was not specified during read preference construction, nil is returned.

func (*ReadPref) MaxStaleness Uses

func (r *ReadPref) MaxStaleness() (time.Duration, bool)

MaxStaleness is the maximum amount of time to allow a server to be considered eligible for selection. The second return value indicates if this value has been set.

func (*ReadPref) Mode Uses

func (r *ReadPref) Mode() Mode

Mode indicates the mode of the read preference.

func (*ReadPref) String Uses

func (r *ReadPref) String() string

String returns a human-readable description of the read preference.

func (*ReadPref) TagSets Uses

func (r *ReadPref) TagSets() []tag.Set

TagSets are multiple tag sets indicating which servers should be considered.

Package readpref imports 6 packages (graph) and is imported by 124 packages. Updated 2020-09-19. Refresh now. Tools for package owners.