Version: v1.11.3 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2023 License: Apache-2.0 Imports: 5 Imported by: 2



Package writeconcern defines write concerns for MongoDB operations.



This section is empty.


View Source
var ErrEmptyWriteConcern = errors.New("a write concern must have at least one field set")

ErrEmptyWriteConcern indicates that a write concern has no fields set.

View Source
var ErrInconsistent = errors.New("a write concern cannot have both w=0 and j=true")

ErrInconsistent indicates that an inconsistent write concern was specified.

View Source
var ErrNegativeW = errors.New("write concern `w` field cannot be a negative number")

ErrNegativeW indicates that a negative integer `w` field was specified.

View Source
var ErrNegativeWTimeout = errors.New("write concern `wtimeout` field cannot be negative")

ErrNegativeWTimeout indicates that a negative WTimeout was specified.


func AckWrite

func AckWrite(wc *WriteConcern) bool

AckWrite returns true if a write concern represents an acknowledged write

func AcknowledgedValue

func AcknowledgedValue(rawv bson.RawValue) bool

AcknowledgedValue returns true if a BSON RawValue for a write concern represents an acknowledged write concern. The element's value must be a document representing a write concern.


type Option

type Option func(concern *WriteConcern)

Option is an option to provide when creating a WriteConcern.

func J

func J(j bool) Option

J requests acknowledgement from MongoDB that write operations are written to the journal.

func W

func W(w int) Option

W requests acknowledgement that write operations propagate to the specified number of mongod instances.

func WMajority

func WMajority() Option

WMajority requests acknowledgement that write operations propagate to the majority of mongod instances.

func WTagSet

func WTagSet(tag string) Option

WTagSet requests acknowledgement that write operations propagate to the specified mongod instance.

func WTimeout

func WTimeout(d time.Duration) Option

WTimeout specifies specifies a time limit for the write concern.

NOTE(benjirewis): wTimeout will be deprecated in a future release. The more general Timeout option may be used in its place to control the amount of time that a single operation can run before returning an error. Using wTimeout and setting Timeout on the client will result in undefined behavior.

type WriteConcern

type WriteConcern struct {
	// contains filtered or unexported fields

WriteConcern describes the level of acknowledgement requested from MongoDB for write operations to a standalone mongod or to replica sets or to sharded clusters.

func New

func New(options ...Option) *WriteConcern

New constructs a new WriteConcern.

func (*WriteConcern) Acknowledged

func (wc *WriteConcern) Acknowledged() bool

Acknowledged indicates whether or not a write with the given write concern will be acknowledged.

func (*WriteConcern) GetJ

func (wc *WriteConcern) GetJ() bool

GetJ returns the write concern journaling level.

func (*WriteConcern) GetW

func (wc *WriteConcern) GetW() interface{}

GetW returns the write concern w level.

func (*WriteConcern) GetWTimeout

func (wc *WriteConcern) GetWTimeout() time.Duration

GetWTimeout returns the write concern timeout.

func (*WriteConcern) IsValid

func (wc *WriteConcern) IsValid() bool

IsValid checks whether the write concern is invalid.

func (*WriteConcern) MarshalBSONValue

func (wc *WriteConcern) MarshalBSONValue() (bsontype.Type, []byte, error)

MarshalBSONValue implements the bson.ValueMarshaler interface.

func (*WriteConcern) WithOptions

func (wc *WriteConcern) WithOptions(options ...Option) *WriteConcern

WithOptions returns a copy of this WriteConcern with the options set.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL