db

package
v0.0.0-...-749004b Latest Latest
Warning

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

Go to latest
Published: May 1, 2024 License: Apache-2.0 Imports: 15 Imported by: 187

Documentation

Overview

Package db manages Evergreen's interaction with the database.

Index

Constants

View Source
const FacetPipelineStageTooLargeCode = 4031700

FacetPipelineStageTooLargeCode is the error code for when a facet pipeline stage is too large. https://github.com/mongodb/mongo/blob/a1732172ed5d66d98582ea1059c0ede9d8cd5065/src/mongo/db/pipeline/document_source_facet.cpp#L165

Variables

View Source
var (
	NoProjection             = bson.M{}
	NoSort                   = []string{}
	NoSkip                   = 0
	NoLimit                  = 0
	NoHint       interface{} = nil
)

Functions

func Aggregate

func Aggregate(collection string, pipeline interface{}, out interface{}) error

Aggregate runs an aggregation pipeline on a collection and unmarshals the results to the given "out" interface (usually a pointer to an array of structs/bson.M)

func AggregateWithHint

func AggregateWithHint(collection string, pipeline interface{}, hint interface{}, out interface{}) error

AggregateWithHint runs aggregate and takes in a hint (example structure: {key: 1, key2: 1})

func AggregateWithMaxTime

func AggregateWithMaxTime(collection string, pipeline interface{}, out interface{}, maxTime time.Duration) error

AggregateWithMaxTime runs aggregate and specifies a max query time which ensures the query won't go on indefinitely when the request is cancelled.

func Clear

func Clear(collection string) error

Clear removes all documents from a specified collection.

func ClearCollections

func ClearCollections(collections ...string) error

ClearCollections clears all documents from all the specified collections, returning an error immediately if clearing any one of them fails.

func ClearGridCollections

func ClearGridCollections(fsPrefix string) error

func Count

func Count(collection string, query interface{}) (int, error)

Count run a count command with the specified query against the collection.

func CountQ

func CountQ(collection string, q Q) (int, error)

CountQ runs a Q count query against the given collection.

func CreateCollections

func CreateCollections(collections ...string) error

CreateCollections ensures that all the given collections are created, returning an error immediately if creating any one of them fails.

func DropAllIndexes

func DropAllIndexes(collections ...string) error

DropAllIndexes drops all indexes in the specified collections, returning an error immediately if dropping the indexes in any one of them fails.

func DropCollections

func DropCollections(collections ...string) error

DropCollections drops the specified collections, returning an error immediately if dropping any one of them fails.

func DropDatabases

func DropDatabases(dbs ...string) error

DropDatabases drops all of the given databases, returning an error immediately if dropping any of the databases fails.

func EnsureIndex

func EnsureIndex(collection string, index mongo.IndexModel) error

EnsureIndex takes in a collection and ensures that the index is created if it does not already exist.

func FindAllQ

func FindAllQ(collection string, q Q, out interface{}) error

FindAllQ runs a Q query against the given collection, applying the results to "out."

func FindAndModify

func FindAndModify(collection string, query interface{}, sort []string, change db.Change, out interface{}) (*db.ChangeInfo, error)

FindAndModify runs the specified query and change against the collection, unmarshaling the result into the specified interface.

func FindOneQ

func FindOneQ(collection string, q Q, out interface{}) error

FindOneQ runs a Q query against the given collection, applying the results to "out." Only reads one document from the DB.

func GetGridFile

func GetGridFile(fsPrefix, name string) (io.ReadCloser, error)

GetGridFile returns a ReadCloser for a file stored with the given name under the GridFS prefix.

func Insert

func Insert(collection string, item interface{}) error

Insert inserts the specified item into the specified collection.

func InsertMany

func InsertMany(collection string, items ...interface{}) error

func InsertManyUnordered

func InsertManyUnordered(c string, items ...interface{}) error

func IsDocumentLimit

func IsDocumentLimit(err error) bool

func IsDuplicateKey

func IsDuplicateKey(err error) bool

func IsErrorCode

func IsErrorCode(err error, errorCode int) bool

IsErrorCode checks if the error is a mongo error with the given error code.

func Remove

func Remove(collection string, query interface{}) error

Remove removes one item matching the query from the specified collection.

func RemoveAll

func RemoveAll(collection string, query interface{}) error

RemoveAll removes all items matching the query from the specified collection.

func RemoveAllQ

func RemoveAllQ(collection string, q Q) error

RemoveAllQ removes all docs that satisfy the query

func Update

func Update(collection string, query interface{}, update interface{}) error

Update updates one matching document in the collection.

func UpdateAll

func UpdateAll(collection string, query interface{}, update interface{}) (*db.ChangeInfo, error)

UpdateAll updates all matching documents in the collection.

func UpdateId

func UpdateId(collection string, id, update interface{}) error

UpdateId updates one _id-matching document in the collection.

func Upsert

func Upsert(collection string, query interface{}, update interface{}) (*db.ChangeInfo, error)

Upsert run the specified update against the collection as an upsert operation.

func WriteGridFile

func WriteGridFile(fsPrefix, name string, source io.Reader) error

WriteGridFile writes the data in the source Reader to a GridFS collection with the given prefix and filename.

Types

type Q

type Q struct {
	// contains filtered or unexported fields
}

Q holds all information necessary to execute a query

func Query

func Query(filter interface{}) Q

Query creates a db.Q for the given MongoDB query. The filter can be a struct, bson.D, bson.M, nil, etc.

func (Q) Filter

func (q Q) Filter(filter interface{}) Q

func (Q) GetBSON

func (q Q) GetBSON() (interface{}, error)

func (Q) Hint

func (q Q) Hint(hint interface{}) Q

Hint sets the hint for a query to determine what index will be used. The hint can be either the index as an ordered document of the keys or a

func (Q) Limit

func (q Q) Limit(limit int) Q

func (Q) MarshalBSON

func (q Q) MarshalBSON() ([]byte, error)

func (Q) MaxTime

func (q Q) MaxTime(maxTime time.Duration) Q

MaxTime sets the maxTime for a query to time out the query on the db server.

func (Q) Project

func (q Q) Project(projection interface{}) Q

func (Q) SetBSON

func (q Q) SetBSON(_ bson.Raw) error

func (Q) Skip

func (q Q) Skip(skip int) Q

func (Q) Sort

func (q Q) Sort(sort []string) Q

func (Q) UnmarshalBSON

func (q Q) UnmarshalBSON(_ []byte) error

func (Q) WithFields

func (q Q) WithFields(fields ...string) Q

func (Q) WithoutFields

func (q Q) WithoutFields(fields ...string) Q

type SessionFactory

type SessionFactory interface {
	GetSession() (db.Session, db.Database, error)
}

func GetGlobalSessionFactory

func GetGlobalSessionFactory() SessionFactory

Directories

Path Synopsis
mgo
Package mgo provides support for Evergreen's remaining usages of the legacy MongoDB driver gopkg.in/mgo.v2.
Package mgo provides support for Evergreen's remaining usages of the legacy MongoDB driver gopkg.in/mgo.v2.
bson
Package bson is an implementation of the BSON specification for Go:
Package bson is an implementation of the BSON specification for Go:
internal/json
Package json implements encoding and decoding of JSON as defined in RFC 4627.
Package json implements encoding and decoding of JSON as defined in RFC 4627.

Jump to

Keyboard shortcuts

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