Documentation ¶
Overview ¶
Package manipmongo provides a MongoDB backed TransactionalManipulator.
Index ¶
- func CompileFilter(f *elemental.Filter) bson.M
- func CreateCollection(manipulator manipulate.Manipulator, identity elemental.Identity, ...) error
- func CreateIndex(manipulator manipulate.Manipulator, identity elemental.Identity, ...) error
- func DeleteIndex(manipulator manipulate.Manipulator, identity elemental.Identity, ...) error
- func DoesDatabaseExist(manipulator manipulate.Manipulator) (bool, error)
- func DropDatabase(manipulator manipulate.Manipulator) error
- func EnsureIndex(manipulator manipulate.Manipulator, identity elemental.Identity, ...) error
- func GetDatabase(manipulator manipulate.Manipulator) (*mgo.Database, func(), error)
- func New(url string, db string, options ...Option) (manipulate.TransactionalManipulator, error)
- func RunQuery(mctx manipulate.Context, operationFunc func() (interface{}, error), ...) (interface{}, error)
- func SetConsistencyMode(manipulator manipulate.Manipulator, mode mgo.Mode, refresh bool)
- type Option
- func OptionConnectionPoolLimit(poolLimit int) Option
- func OptionConnectionTimeout(connectTimeout time.Duration) Option
- func OptionCredentials(username, password, authsource string) Option
- func OptionDefaultReadConsistencyMode(consistency manipulate.ReadConsistency) Option
- func OptionDefaultRetryFunc(f manipulate.RetryFunc) Option
- func OptionDefaultWriteConsistencyMode(consistency manipulate.WriteConsistency) Option
- func OptionForceReadFilter(f bson.M) Option
- func OptionSharder(sharder Sharder) Option
- func OptionSocketTimeout(socketTimeout time.Duration) Option
- func OptionTLS(tlsConfig *tls.Config) Option
- type RetryInfo
- type Sharder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompileFilter ¶
CompileFilter compiles the given manipulate filter into a raw mongo filter.
func CreateCollection ¶
func CreateCollection(manipulator manipulate.Manipulator, identity elemental.Identity, info *mgo.CollectionInfo) error
CreateCollection creates a collection using the given mgo.CollectionInfo.
func CreateIndex ¶
func CreateIndex(manipulator manipulate.Manipulator, identity elemental.Identity, indexes ...mgo.Index) error
CreateIndex creates multiple mgo.Index for the collection storing info for the given identity using the given manipulator.
func DeleteIndex ¶
func DeleteIndex(manipulator manipulate.Manipulator, identity elemental.Identity, indexes ...string) error
DeleteIndex deletes multiple mgo.Index for the collection.
func DoesDatabaseExist ¶
func DoesDatabaseExist(manipulator manipulate.Manipulator) (bool, error)
DoesDatabaseExist checks if the database used by the given manipulator exists.
func DropDatabase ¶
func DropDatabase(manipulator manipulate.Manipulator) error
DropDatabase drops the entire database used by the given manipulator.
func EnsureIndex ¶ added in v1.67.0
func EnsureIndex(manipulator manipulate.Manipulator, identity elemental.Identity, indexes ...mgo.Index) error
EnsureIndex works like create index, but it will delete existing index if they changed before creating a new one.
func GetDatabase ¶
func GetDatabase(manipulator manipulate.Manipulator) (*mgo.Database, func(), error)
GetDatabase returns a ready to use mgo.Database. Use at your own risks. You are responsible for closing the session by calling the returner close function
func New ¶
func New(url string, db string, options ...Option) (manipulate.TransactionalManipulator, error)
New returns a new manipulator backed by MongoDB.
func RunQuery ¶ added in v1.61.0
func RunQuery(mctx manipulate.Context, operationFunc func() (interface{}, error), baseRetryInfo RetryInfo) (interface{}, error)
RunQuery runs a function that must run a mongodb operation. It will retry in case of failure. This is an advanced helper can be used when you get a session from using GetDatabase().
func SetConsistencyMode ¶
func SetConsistencyMode(manipulator manipulate.Manipulator, mode mgo.Mode, refresh bool)
SetConsistencyMode sets the mongo consistency mode of the mongo session.
Types ¶
type Option ¶
type Option func(*config)
An Option represents a maniphttp.Manipulator option.
func OptionConnectionPoolLimit ¶
OptionConnectionPoolLimit sets maximum size of the connection pool.
func OptionConnectionTimeout ¶
OptionConnectionTimeout sets the connection timeout.
func OptionCredentials ¶
OptionCredentials sets the username and password to use for authentication.
func OptionDefaultReadConsistencyMode ¶
func OptionDefaultReadConsistencyMode(consistency manipulate.ReadConsistency) Option
OptionDefaultReadConsistencyMode sets the default read consistency mode.
func OptionDefaultRetryFunc ¶ added in v1.61.0
func OptionDefaultRetryFunc(f manipulate.RetryFunc) Option
OptionDefaultRetryFunc sets the default retry func to use if manipulate.Context does not have one.
func OptionDefaultWriteConsistencyMode ¶
func OptionDefaultWriteConsistencyMode(consistency manipulate.WriteConsistency) Option
OptionDefaultWriteConsistencyMode sets the default write consistency mode.
func OptionForceReadFilter ¶ added in v1.67.0
OptionForceReadFilter allows to set a bson.M filter that will always reducing the scope of the reads to that filter.
func OptionSocketTimeout ¶
OptionSocketTimeout sets the socket timeout.
type RetryInfo ¶ added in v1.61.0
type RetryInfo struct { Operation elemental.Operation Identity elemental.Identity // contains filtered or unexported fields }
A RetryInfo contains information about a retry,
func (RetryInfo) Context ¶ added in v1.61.0
func (i RetryInfo) Context() manipulate.Context
Context returns the manipulate.Context used.
type Sharder ¶
type Sharder interface { // Shard will be call when the shard key needs to be set to // the given elemental.Identifiable. Shard(manipulate.TransactionalManipulator, manipulate.Context, elemental.Identifiable) error // OnShardedWrite will be called after a successful sharded write // If it returns an error, this error will be returned to the caller // of the manipulate Operation, but the object that has been // created will still be created in database. OnShardedWrite(manipulate.TransactionalManipulator, manipulate.Context, elemental.Operation, elemental.Identifiable) error // FilterOne returns the filter bit as bson.M that must be // used to perform an efficient localized query for a single object. // // You can return nil which will trigger a broadcast. FilterOne(manipulate.TransactionalManipulator, manipulate.Context, elemental.Identifiable) (bson.M, error) // FilterMany returns the filter bit as bson.M that must be // used to perform an efficient localized query for multiple objects. // // You can return nil which will trigger a broadcast. FilterMany(manipulate.TransactionalManipulator, manipulate.Context, elemental.Identity) (bson.M, error) }
A Sharder is the interface of an object that can be use to manage sharding of resources.