These constants are the maximum and minimum values for the exponent field in a decimal128 value.
const ( MaxDecimal128Exp = 6111 MinDecimal128Exp = -6176 )
These errors are returned when an invalid value is parsed as a big.Int.
var ( ErrParseNaN = errors.New("cannot parse NaN as a *big.Int") ErrParseInf = errors.New("cannot parse Infinity as a *big.Int") ErrParseNegInf = errors.New("cannot parse -Infinity as a *big.Int") )
ErrInvalidHex indicates that a hex string cannot be converted to an ObjectID.
var ErrInvalidHex = errors.New("the provided hex string is not a valid ObjectID")
func CompareTimestamp(tp, tp2 Timestamp) int
CompareTimestamp compares the time instant tp with tp2. If tp is before tp2, it returns -1; if tp is after tp2, it returns +1; if they're the same, it returns 0.
Deprecated: Use Timestamp.Compare instead.
func IsValidObjectID(s string) bool
IsValidObjectID returns true if the provided hex string represents a valid ObjectID and false if not.
Deprecated: Use ObjectIDFromHex and check the error instead.
An A is an ordered representation of a BSON array.
Example usage:
bson.A{"bar", "world", 3.14159, bson.D{{"qux", 12345}}}
type A []interface{}
Binary represents a BSON binary value.
type Binary struct { Subtype byte Data []byte }
func (bp Binary) Equal(bp2 Binary) bool
Equal compares bp to bp2 and returns true if they are equal.
func (bp Binary) IsZero() bool
IsZero returns if bp is the empty Binary.
CodeWithScope represents a BSON JavaScript code with scope value.
type CodeWithScope struct { Code JavaScript Scope interface{} }
func (cws CodeWithScope) String() string
D is an ordered representation of a BSON document. This type should be used when the order of the elements matters, such as MongoDB command documents. If the order of the elements does not matter, an M should be used instead.
Example usage:
bson.D{{"foo", "bar"}, {"hello", "world"}, {"pi", 3.14159}}
type D []E
func (d D) Map() M
Map creates a map from the elements of the D.
Deprecated: Converting directly from a D to an M will not be supported in Go Driver 2.0. Instead, users should marshal the D to BSON using bson.Marshal and unmarshal it to M using bson.Unmarshal.
DBPointer represents a BSON dbpointer value.
type DBPointer struct { DB string Pointer ObjectID }
func (d DBPointer) Equal(d2 DBPointer) bool
Equal compares d to d2 and returns true if they are equal.
func (d DBPointer) IsZero() bool
IsZero returns if d is the empty DBPointer.
func (d DBPointer) String() string
DateTime represents the BSON datetime value.
type DateTime int64
func NewDateTimeFromTime(t time.Time) DateTime
NewDateTimeFromTime creates a new DateTime from a Time.
func (d DateTime) MarshalJSON() ([]byte, error)
MarshalJSON marshal to time type.
func (d DateTime) Time() time.Time
Time returns the date as a time type.
func (d *DateTime) UnmarshalJSON(data []byte) error
UnmarshalJSON creates a primitive.DateTime from a JSON string.
Decimal128 holds decimal128 BSON values.
type Decimal128 struct {
// contains filtered or unexported fields
}
func NewDecimal128(h, l uint64) Decimal128
NewDecimal128 creates a Decimal128 using the provide high and low uint64s.
func ParseDecimal128(s string) (Decimal128, error)
ParseDecimal128 takes the given string and attempts to parse it into a valid Decimal128 value.
func ParseDecimal128FromBigInt(bi *big.Int, exp int) (Decimal128, bool)
ParseDecimal128FromBigInt attempts to parse the given significand and exponent into a valid Decimal128 value.
func (d Decimal128) BigInt() (*big.Int, int, error)
BigInt returns significand as big.Int and exponent, bi * 10 ^ exp.
func (d Decimal128) GetBytes() (uint64, uint64)
GetBytes returns the underlying bytes of the BSON decimal value as two uint64 values. The first contains the most first 8 bytes of the value and the second contains the latter.
func (d Decimal128) IsInf() int
IsInf returns:
+1 d == Infinity 0 other case -1 d == -Infinity
func (d Decimal128) IsNaN() bool
IsNaN returns whether d is NaN.
func (d Decimal128) IsZero() bool
IsZero returns true if d is the empty Decimal128.
func (d Decimal128) MarshalJSON() ([]byte, error)
MarshalJSON returns Decimal128 as a string.
func (d Decimal128) String() string
String returns a string representation of the decimal value.
func (d *Decimal128) UnmarshalJSON(b []byte) error
UnmarshalJSON creates a primitive.Decimal128 from a JSON string, an extended JSON $numberDecimal value, or the string "null". If b is a JSON string or extended JSON value, d will have the value of that string, and if b is "null", d will be unchanged.
E represents a BSON element for a D. It is usually used inside a D.
type E struct { Key string Value interface{} }
JavaScript represents a BSON JavaScript code value.
type JavaScript string
M is an unordered representation of a BSON document. This type should be used when the order of the elements does not matter. This type is handled as a regular map[string]interface{} when encoding and decoding. Elements will be serialized in an undefined, random order. If the order of the elements matters, a D should be used instead.
Example usage:
bson.M{"foo": "bar", "hello": "world", "pi": 3.14159}
type M map[string]interface{}
MaxKey represents the BSON maxkey value.
type MaxKey struct{}
MinKey represents the BSON minkey value.
type MinKey struct{}
Null represents the BSON null value.
type Null struct{}
ObjectID is the BSON ObjectID type.
type ObjectID [12]byte
NilObjectID is the zero value for ObjectID.
var NilObjectID ObjectID
func NewObjectID() ObjectID
NewObjectID generates a new ObjectID.
func NewObjectIDFromTimestamp(timestamp time.Time) ObjectID
NewObjectIDFromTimestamp generates a new ObjectID based on the given time.
func ObjectIDFromHex(s string) (ObjectID, error)
ObjectIDFromHex creates a new ObjectID from a hex string. It returns an error if the hex string is not a valid ObjectID.
func (id ObjectID) Hex() string
Hex returns the hex encoding of the ObjectID as a string.
func (id ObjectID) IsZero() bool
IsZero returns true if id is the empty ObjectID.
func (id ObjectID) MarshalJSON() ([]byte, error)
MarshalJSON returns the ObjectID as a string
func (id ObjectID) MarshalText() ([]byte, error)
MarshalText returns the ObjectID as UTF-8-encoded text. Implementing this allows us to use ObjectID as a map key when marshalling JSON. See https://pkg.go.dev/encoding#TextMarshaler
func (id ObjectID) String() string
func (id ObjectID) Timestamp() time.Time
Timestamp extracts the time part of the ObjectId.
func (id *ObjectID) UnmarshalJSON(b []byte) error
UnmarshalJSON populates the byte slice with the ObjectID. If the byte slice is 24 bytes long, it will be populated with the hex representation of the ObjectID. If the byte slice is twelve bytes long, it will be populated with the BSON representation of the ObjectID. This method also accepts empty strings and decodes them as NilObjectID. For any other inputs, an error will be returned.
func (id *ObjectID) UnmarshalText(b []byte) error
UnmarshalText populates the byte slice with the ObjectID. Implementing this allows us to use ObjectID as a map key when unmarshalling JSON. See https://pkg.go.dev/encoding#TextUnmarshaler
Regex represents a BSON regex value.
type Regex struct { Pattern string Options string }
func (rp Regex) Equal(rp2 Regex) bool
Equal compares rp to rp2 and returns true if they are equal.
func (rp Regex) IsZero() bool
IsZero returns if rp is the empty Regex.
func (rp Regex) String() string
Symbol represents a BSON symbol value.
type Symbol string
Timestamp represents a BSON timestamp value.
type Timestamp struct { T uint32 I uint32 }
func (tp Timestamp) After(tp2 Timestamp) bool
After reports whether the time instant tp is after tp2.
func (tp Timestamp) Before(tp2 Timestamp) bool
Before reports whether the time instant tp is before tp2.
func (tp Timestamp) Compare(tp2 Timestamp) int
Compare compares the time instant tp with tp2. If tp is before tp2, it returns -1; if tp is after tp2, it returns +1; if they're the same, it returns 0.
func (tp Timestamp) Equal(tp2 Timestamp) bool
Equal compares tp to tp2 and returns true if they are equal.
func (tp Timestamp) IsZero() bool
IsZero returns if tp is the zero Timestamp.
Undefined represents the BSON undefined value type.
type Undefined struct{}