mongo

package
v1.94.0 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const ASCOrder = "ASC"
View Source
const AnyETag = "*"

AnyETag represents the wildchar that corresponds to not check the ETag value for update requests

View Source
const DESCOrder = "DESC"

Variables

This section is empty.

Functions

This section is empty.

Types

type Mongo

type Mongo struct {
	config.MongoConfig

	Connection *mongodriver.MongoConnection
	// contains filtered or unexported fields
}

func (*Mongo) AcquireInstanceLock added in v1.34.0

func (m *Mongo) AcquireInstanceLock(ctx context.Context, instanceID string) (lockID string, err error)

AcquireInstanceLock tries to lock the provided instanceID. If the instance is already locked, this function will block until it's released, at which point we acquire the lock and return.

func (*Mongo) AcquireVersionsLock added in v1.72.0

func (m *Mongo) AcquireVersionsLock(ctx context.Context, versionID string) (lockID string, err error)

AcquireVersionsLock tries to lock the provided versionID.

func (*Mongo) AddEventToInstance

func (m *Mongo) AddEventToInstance(ctx context.Context, currentInstance *models.Instance, event *models.Event, eTagSelector string) (newETag string, err error)

AddEventToInstance to the instance collection

func (*Mongo) AddInstance

func (m *Mongo) AddInstance(ctx context.Context, instance *models.Instance) (inst *models.Instance, err error)

AddInstance to the instance collection

func (*Mongo) AddVersionStatic added in v1.70.0

func (m *Mongo) AddVersionStatic(ctx context.Context, version *models.Version) (inst *models.Version, err error)

AddVersion to the versions collection

func (*Mongo) CheckDatasetExists

func (m *Mongo) CheckDatasetExists(ctx context.Context, id, state string) error

CheckDatasetExists checks that the dataset exists

func (*Mongo) CheckDatasetTitleExist added in v1.73.0

func (m *Mongo) CheckDatasetTitleExist(ctx context.Context, title string) (bool, error)

func (*Mongo) CheckEditionExists

func (m *Mongo) CheckEditionExists(ctx context.Context, id, editionID, state string) error

CheckEditionExists checks that the edition of a dataset exists

func (*Mongo) CheckEditionExistsStatic added in v1.70.0

func (m *Mongo) CheckEditionExistsStatic(ctx context.Context, datasetID, editionID, state string) error

CheckEditionExistsStatic checks that the edition of a dataset exists in the versions collection

func (*Mongo) CheckEditionTitleExistsStatic added in v1.92.0

func (m *Mongo) CheckEditionTitleExistsStatic(ctx context.Context, datasetID, editionTitle string) error

func (*Mongo) CheckVersionExistsStatic added in v1.88.0

func (m *Mongo) CheckVersionExistsStatic(ctx context.Context, datasetID, editionID string, version int) (bool, error)

CheckVersionExistsStatic checks that the version of a dataset exists in the versions collection

func (*Mongo) Checker added in v1.22.0

func (m *Mongo) Checker(ctx context.Context, state *healthcheck.CheckState) error

Checker is called by the healthcheck library to check the health state of this mongoDB instance

func (*Mongo) Close added in v1.22.0

func (m *Mongo) Close(ctx context.Context) error

Close represents mongo session closing within the context deadline

func (*Mongo) DeleteDataset

func (m *Mongo) DeleteDataset(ctx context.Context, id string) (err error)

DeleteDataset deletes an existing dataset document

func (*Mongo) DeleteEdition

func (m *Mongo) DeleteEdition(ctx context.Context, id string) (err error)

DeleteEdition deletes an existing edition document

func (*Mongo) DeleteStaticDatasetVersion added in v1.89.0

func (m *Mongo) DeleteStaticDatasetVersion(ctx context.Context, datasetID, editionID string, versionNumber int) (err error)

func (*Mongo) GetAllStaticVersions added in v1.72.0

func (m *Mongo) GetAllStaticVersions(ctx context.Context, datasetID, state string, offset, limit int) ([]*models.Version, int, error)

NOTE: passing in limit as 0 will return the total count but no results

func (*Mongo) GetDataset

func (m *Mongo) GetDataset(ctx context.Context, id string) (*models.DatasetUpdate, error)

GetDataset retrieves a dataset document

func (*Mongo) GetDatasetType added in v1.71.0

func (m *Mongo) GetDatasetType(ctx context.Context, datasetID string, authorised bool) (string, error)

GetDatasetType retrieves the type of a dataset

func (*Mongo) GetDatasets

func (m *Mongo) GetDatasets(ctx context.Context, offset, limit int, authorised bool) (values []*models.DatasetUpdate, totalCount int, err error)

GetDatasets retrieves all dataset documents

func (*Mongo) GetDatasetsByQueryParams added in v1.72.0

func (m *Mongo) GetDatasetsByQueryParams(ctx context.Context, id, datasetType, sortOrder, datasetID string, offset, limit int, authorised bool) (values []*models.DatasetUpdate, totalCount int, err error)

func (*Mongo) GetDimensionOptions

func (m *Mongo) GetDimensionOptions(ctx context.Context, version *models.Version, dimension string, offset, limit int) ([]*models.PublicDimensionOption, int, error)

GetDimensionOptions returns dimension options for a dimensions within a dataset, according to the provided limit and offset. Offset and limit need to be positive or zero

func (*Mongo) GetDimensionOptionsFromIDs added in v1.25.0

func (m *Mongo) GetDimensionOptionsFromIDs(ctx context.Context, version *models.Version, dimension string, ids []string) ([]*models.PublicDimensionOption, int, error)

GetDimensionOptionsFromIDs returns dimension options for a dimension within a dataset, whose IDs match the provided list of IDs

func (*Mongo) GetDimensions

func (m *Mongo) GetDimensions(ctx context.Context, versionID string) ([]bson.M, error)

GetDimensions returns a list of all dimensions from a dataset

func (*Mongo) GetDimensionsFromInstance

func (m *Mongo) GetDimensionsFromInstance(ctx context.Context, id string, offset, limit int) ([]*models.DimensionOption, int, error)

GetDimensionsFromInstance returns a list of dimensions and their options for an instance resource. Note that all dimension options for all dimensions are returned as high level items, hence there can be duplicate dimension names, which correspond to different options.

func (*Mongo) GetEdition

func (m *Mongo) GetEdition(ctx context.Context, id, editionID, state string) (*models.EditionUpdate, error)

GetEdition retrieves an edition document for a dataset

func (*Mongo) GetEditions

func (m *Mongo) GetEditions(ctx context.Context, id, state string, offset, limit int, authorised bool) ([]*models.EditionUpdate, int, error)

GetEditions retrieves all edition documents for a dataset

func (*Mongo) GetInstance

func (m *Mongo) GetInstance(ctx context.Context, id, eTagSelector string) (*models.Instance, error)

GetInstance returns a single instance from an ID

func (*Mongo) GetInstances

func (m *Mongo) GetInstances(ctx context.Context, states, datasets []string, offset, limit int) ([]*models.Instance, int, error)

GetInstances from a mongo collection

func (*Mongo) GetLatestVersionStatic added in v1.71.0

func (m *Mongo) GetLatestVersionStatic(ctx context.Context, datasetID, editionID, state string) (*models.Version, error)

GetLatestVersionStatic retrieves the latest version for an edition of a dataset

func (*Mongo) GetNextVersion

func (m *Mongo) GetNextVersion(ctx context.Context, datasetID, edition string) (int, error)

GetNextVersion retrieves the latest version for an edition of a dataset

func (*Mongo) GetStaticVersionsByState added in v1.82.0

func (m *Mongo) GetStaticVersionsByState(ctx context.Context, state, publishedOnly string, offset, limit int) ([]*models.Version, int, error)

GetStaticVersionsByState retrieves all versions that match the provided state If state is empty, the search will include any state that is not "published"

func (*Mongo) GetUniqueDimensionAndOptions

func (m *Mongo) GetUniqueDimensionAndOptions(ctx context.Context, id, dimension string) (uniqueValues []*string, countOfValues int, err error)

GetUniqueDimensionAndOptions returns a list of dimension options for an instance resource

func (*Mongo) GetVersion

func (m *Mongo) GetVersion(ctx context.Context, id, editionID string, versionID int, state string) (*models.Version, error)

GetVersion retrieves a version document for a dataset edition

func (*Mongo) GetVersionStatic added in v1.70.0

func (m *Mongo) GetVersionStatic(ctx context.Context, id, editionID string, versionID int, state string) (*models.Version, error)

GetVersion retrieves a version document for a dataset edition

func (*Mongo) GetVersions

func (m *Mongo) GetVersions(ctx context.Context, datasetID, editionID, state string, offset, limit int) ([]models.Version, int, error)

GetVersions retrieves all version documents for a dataset edition

func (*Mongo) GetVersionsStatic added in v1.71.0

func (m *Mongo) GetVersionsStatic(ctx context.Context, datasetID, edition, state string, offset, limit int) ([]models.Version, int, error)

GetVersions retrieves all version documents for a dataset

func (*Mongo) Init

func (m *Mongo) Init(ctx context.Context) (err error)

Init returns an initialised Mongo object encapsulating a connection to the mongo server/cluster with the given configuration, a health client to check the health of the mongo server/cluster, and a lock client

func (*Mongo) IsStaticDataset added in v1.89.0

func (m *Mongo) IsStaticDataset(ctx context.Context, datasetID string) (bool, error)
func (m *Mongo) RemoveDatasetVersionAndEditionLinks(ctx context.Context, id string) error

func (*Mongo) UnlockInstance added in v1.34.0

func (m *Mongo) UnlockInstance(ctx context.Context, lockID string)

UnlockInstance releases an exclusive mongoDB lock for the provided lockId (if it exists)

func (*Mongo) UnlockVersions added in v1.72.0

func (m *Mongo) UnlockVersions(ctx context.Context, lockID string)

func (*Mongo) UpdateBuildHierarchyTaskState

func (m *Mongo) UpdateBuildHierarchyTaskState(ctx context.Context, currentInstance *models.Instance, dimension, state, eTagSelector string) (newETag string, err error)

UpdateBuildHierarchyTaskState updates the state of a build hierarchy task.

func (*Mongo) UpdateBuildSearchTaskState

func (m *Mongo) UpdateBuildSearchTaskState(ctx context.Context, currentInstance *models.Instance, dimension, state, eTagSelector string) (newETag string, err error)

UpdateBuildSearchTaskState updates the state of a build search task.

func (*Mongo) UpdateDataset

func (m *Mongo) UpdateDataset(ctx context.Context, id string, dataset *models.Dataset, currentState string) (err error)

UpdateDataset updates an existing dataset document

func (*Mongo) UpdateDatasetWithAssociation

func (m *Mongo) UpdateDatasetWithAssociation(ctx context.Context, id, state string, version *models.Version) (err error)

UpdateDatasetWithAssociation updates an existing dataset document with collection data

func (*Mongo) UpdateDimensionsNodeIDAndOrder added in v1.37.0

func (m *Mongo) UpdateDimensionsNodeIDAndOrder(ctx context.Context, dimensions []*models.DimensionOption) error

UpdateDimensionsNodeIDAndOrder to cache the id and order (optional) for other import processes

func (*Mongo) UpdateETagForOptions added in v1.34.0

func (m *Mongo) UpdateETagForOptions(ctx context.Context, currentInstance *models.Instance, upserts []*models.CachedDimensionOption, updates []*models.DimensionOption, eTagSelector string) (newETag string, err error)

UpdateETagForOptions updates the eTag value for an instance according to the provided dimension options upserts and updates

func (*Mongo) UpdateImportObservationsTaskState

func (m *Mongo) UpdateImportObservationsTaskState(ctx context.Context, currentInstance *models.Instance, state, eTagSelector string) (newETag string, err error)

UpdateImportObservationsTaskState to the given state.

func (*Mongo) UpdateInstance

func (m *Mongo) UpdateInstance(ctx context.Context, currentInstance, updatedInstance *models.Instance, eTagSelector string) (newETag string, err error)

UpdateInstance with new properties

func (*Mongo) UpdateMetadata added in v1.56.0

func (m *Mongo) UpdateMetadata(ctx context.Context, datasetID, versionID, versionEtag string, updatedDataset *models.Dataset, updatedVersion *models.Version) error

func (*Mongo) UpdateObservationInserted

func (m *Mongo) UpdateObservationInserted(ctx context.Context, currentInstance *models.Instance, observationInserted int64, eTagSelector string) (newETag string, err error)

UpdateObservationInserted by incrementing the stored value

func (*Mongo) UpdateVersion

func (m *Mongo) UpdateVersion(ctx context.Context, currentVersion, versionUpdate *models.Version, eTagSelector string) (newETag string, err error)

UpdateVersion updates an existing version document

func (*Mongo) UpdateVersionStatic added in v1.72.0

func (m *Mongo) UpdateVersionStatic(ctx context.Context, currentVersion, versionUpdate *models.Version, eTagSelector string) (newETag string, err error)

UpdateVersionStatic updates an existing version document

func (*Mongo) UpsertContact

func (m *Mongo) UpsertContact(ctx context.Context, id string, update interface{}) (err error)

UpsertContact adds or overrides an existing contact document

func (*Mongo) UpsertDataset

func (m *Mongo) UpsertDataset(ctx context.Context, id string, datasetDoc *models.DatasetUpdate) (err error)

UpsertDataset adds or overrides an existing dataset document

func (*Mongo) UpsertDimensionsToInstance added in v1.36.0

func (m *Mongo) UpsertDimensionsToInstance(ctx context.Context, opts []*models.CachedDimensionOption) error

UpsertDimensionsToInstance to the dimension collection

func (*Mongo) UpsertEdition

func (m *Mongo) UpsertEdition(ctx context.Context, datasetID, edition string, editionDoc *models.EditionUpdate) (err error)

UpsertEdition adds or overrides an existing edition document

func (*Mongo) UpsertVersion

func (m *Mongo) UpsertVersion(ctx context.Context, id string, version *models.Version) (err error)

UpsertVersion adds or overrides an existing version document

func (*Mongo) UpsertVersionStatic added in v1.70.0

func (m *Mongo) UpsertVersionStatic(ctx context.Context, version *models.Version) (err error)

UpsertVersion adds or overrides an existing version document

Jump to

Keyboard shortcuts

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