Documentation
¶
Overview ¶
Package db manages Evergreen's interaction with the database.
Index ¶
- Constants
- Variables
- func Aggregate(ctx context.Context, collection string, pipeline any, out any) error
- func Clear(collection string) error
- func ClearCollections(collections ...string) error
- func ClearGridCollections(fsPrefix string) error
- func Count(ctx context.Context, collection string, query any) (int, error)
- func CountQ(ctx context.Context, collection string, q Q) (int, error)
- func CreateCollections(collections ...string) error
- func DropCollections(collections ...string) error
- func EnsureIndex(collection string, index mongo.IndexModel) error
- func FindAllQ(ctx context.Context, collection string, q Q, out any) error
- func FindAndModify(ctx context.Context, collection string, query any, sort []string, ...) (*db.ChangeInfo, error)
- func FindOneQ(ctx context.Context, collection string, q Q, out any) error
- func GetGridFile(ctx context.Context, fsPrefix, name string) (io.ReadCloser, error)
- func Insert(ctx context.Context, collection string, item any) error
- func InsertMany(ctx context.Context, collection string, items ...any) error
- func InsertManyUnordered(ctx context.Context, collection string, items ...any) error
- func InsertWithEnv(ctx context.Context, env evergreen.Environment, collection string, item any) error
- func IsDocumentLimit(err error) bool
- func IsDuplicateKey(err error) bool
- func IsErrorCode(err error, errorCode int) bool
- func Remove(ctx context.Context, collection string, query any) error
- func RemoveAll(ctx context.Context, collection string, query any) error
- func RemoveAllQ(ctx context.Context, collection string, q Q) error
- func Replace(ctx context.Context, collection string, query any, replacement any) (*db.ChangeInfo, error)
- func Update(ctx context.Context, collection string, query any, update any) error
- func UpdateAll(ctx context.Context, collection string, query any, update any) (*db.ChangeInfo, error)
- func UpdateId(ctx context.Context, collection string, id, update any) error
- func Upsert(ctx context.Context, collection string, query any, update any) (*db.ChangeInfo, error)
- func WriteGridFile(ctx context.Context, fsPrefix, name string, source io.Reader) error
- type Q
- func (q Q) Filter(filter any) Q
- func (q Q) GetBSON() (any, error)
- func (q Q) Hint(hint any) Q
- func (q Q) Limit(limit int) Q
- func (q Q) MarshalBSON() ([]byte, error)
- func (q Q) MaxTime(maxTime time.Duration) Q
- func (q Q) Project(projection any) Q
- func (q Q) SetBSON(_ bson.Raw) error
- func (q Q) Skip(skip int) Q
- func (q Q) Sort(sort []string) Q
- func (q Q) UnmarshalBSON(_ []byte) error
- func (q Q) WithFields(fields ...string) Q
- func (q Q) WithoutFields(fields ...string) Q
- type SessionFactory
Constants ¶
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 ¶
Functions ¶
func Aggregate ¶
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 ClearCollections ¶
ClearCollections clears all documents from all the specified collections, returning an error immediately if clearing any one of them fails.
func ClearGridCollections ¶
func CreateCollections ¶
CreateCollections ensures that all the given collections are created, returning an error immediately if creating any one of them fails.
func DropCollections ¶
DropCollections drops the specified collections, returning an error immediately if dropping any one of them 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 ¶
FindAllQ runs a Q query against the given collection, applying the results to "out."
func FindAndModify ¶
func FindAndModify(ctx context.Context, collection string, query any, sort []string, change db.Change, out any) (*db.ChangeInfo, error)
FindAndModify runs the specified query and change against the collection, unmarshaling the result into the specified interface.
func FindOneQ ¶
FindOneQ runs a Q query against the given collection, applying the results to "out." Only reads one document from the DB.
func GetGridFile ¶
GetGridFile returns a ReadCloser for a file stored with the given name under the GridFS prefix.
func InsertManyUnordered ¶
func InsertWithEnv ¶
func InsertWithEnv(ctx context.Context, env evergreen.Environment, collection string, item any) error
InsertWithEnv inserts the specified item into the specified collection using the given environment's database. This is useful for transactions where the same client must be used for all operations.
func IsDocumentLimit ¶
func IsDuplicateKey ¶
func IsErrorCode ¶
IsErrorCode checks if the error is a mongo error with the given error code.
func RemoveAllQ ¶
RemoveAllQ removes all docs that satisfy the query
func Replace ¶
func Replace(ctx context.Context, collection string, query any, replacement any) (*db.ChangeInfo, error)
Replace replaces one matching document in the collection. If a matching document is not found, it will be upserted. It returns the upserted ID if one was created.
func UpdateAll ¶
func UpdateAll(ctx context.Context, collection string, query any, update any) (*db.ChangeInfo, error)
UpdateAll updates all matching documents in the collection.
Types ¶
type Q ¶
type Q struct {
// contains filtered or unexported fields
}
Q holds all information necessary to execute a query
func Query ¶
Query creates a db.Q for the given MongoDB query. The filter can be a struct, bson.D, bson.M, nil, etc.
func (Q) Hint ¶
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) MarshalBSON ¶
func (Q) UnmarshalBSON ¶
func (Q) WithFields ¶
func (Q) WithoutFields ¶
type SessionFactory ¶
type SessionFactory interface {
// GetSession uses the provided context to get a session and database.
GetSession(ctx context.Context) (db.Session, db.Database, error)
}
func GetCedarGlobalSessionFactory ¶
func GetCedarGlobalSessionFactory() SessionFactory
GetCedarGlobalSessionFactory initializes a session factory to connect to the Cedar database.
func GetGlobalSessionFactory ¶
func GetGlobalSessionFactory() SessionFactory
GetGlobalSessionFactory initializes a session factory to connect to the Evergreen database.
Directories
¶
| Path | Synopsis |
|---|---|
|
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. |