Documentation
¶
Index ¶
- Variables
- func FormatAddr(hosts []string) string
- func Inject(key string, client *mongo.Client)
- func SetSlowThreshold(threshold time.Duration)
- type BulkInserter
- type ClosableClient
- type Collection
- type Model
- func (m *Model) Aggregate(ctx context.Context, v, pipeline interface{}, opts ...*mopt.AggregateOptions) error
- func (m *Model) DeleteMany(ctx context.Context, filter interface{}, opts ...*mopt.DeleteOptions) (int64, error)
- func (m *Model) DeleteOne(ctx context.Context, filter interface{}, opts ...*mopt.DeleteOptions) (int64, error)
- func (m *Model) Find(ctx context.Context, v, filter interface{}, opts ...*mopt.FindOptions) error
- func (m *Model) FindOne(ctx context.Context, v, filter interface{}, opts ...*mopt.FindOneOptions) error
- func (m *Model) FindOneAndDelete(ctx context.Context, v, filter interface{}, ...) error
- func (m *Model) FindOneAndReplace(ctx context.Context, v, filter, replacement interface{}, ...) error
- func (m *Model) FindOneAndUpdate(ctx context.Context, v, filter, update interface{}, ...) error
- func (m *Model) StartSession(opts ...*mopt.SessionOptions) (sess mongo.Session, err error)
- type Option
- type ResultHandler
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = mongo.ErrNoDocuments
ErrNotFound is an alias of mongo.ErrNoDocuments
Functions ¶
func FormatAddr ¶
FormatAddr formats mongo hosts to a string.
func Inject ¶
Inject injects a *mongo.Client into the client manager. Typically, this is used to inject a *mongo.Client for test purpose.
func SetSlowThreshold ¶
SetSlowThreshold sets the slow threshold.
Types ¶
type BulkInserter ¶
type BulkInserter struct {
// contains filtered or unexported fields
}
A BulkInserter is used to insert bulk of mongo records.
func NewBulkInserter ¶
func NewBulkInserter(coll Collection, interval ...time.Duration) (*BulkInserter, error)
NewBulkInserter returns a BulkInserter.
func (*BulkInserter) Flush ¶
func (bi *BulkInserter) Flush()
Flush flushes the inserter, writes all pending records.
func (*BulkInserter) SetResultHandler ¶
func (bi *BulkInserter) SetResultHandler(handler ResultHandler)
SetResultHandler sets the result handler.
type ClosableClient ¶
ClosableClient wraps *mongo.Client and provides a Close method.
func (*ClosableClient) Close ¶
func (cs *ClosableClient) Close() error
Close disconnects the underlying *mongo.Client.
type Collection ¶
type Collection interface {
// Aggregate executes an aggregation pipeline.
Aggregate(ctx context.Context, pipeline interface{}, opts ...*mopt.AggregateOptions) (
*mongo.Cursor, error)
// BulkWrite performs a bulk write operation.
BulkWrite(ctx context.Context, models []mongo.WriteModel, opts ...*mopt.BulkWriteOptions) (
*mongo.BulkWriteResult, error)
// Clone creates a copy of this collection with the same settings.
Clone(opts ...*mopt.CollectionOptions) (*mongo.Collection, error)
// CountDocuments returns the number of documents in the collection that match the filter.
CountDocuments(ctx context.Context, filter interface{}, opts ...*mopt.CountOptions) (int64, error)
// Database returns the database that this collection is a part of.
Database() *mongo.Database
// DeleteMany deletes documents from the collection that match the filter.
DeleteMany(ctx context.Context, filter interface{}, opts ...*mopt.DeleteOptions) (
*mongo.DeleteResult, error)
// DeleteOne deletes at most one document from the collection that matches the filter.
DeleteOne(ctx context.Context, filter interface{}, opts ...*mopt.DeleteOptions) (
*mongo.DeleteResult, error)
// Distinct returns a list of distinct values for the given key across the collection.
Distinct(ctx context.Context, fieldName string, filter interface{},
opts ...*mopt.DistinctOptions) ([]interface{}, error)
// Drop drops this collection from database.
Drop(ctx context.Context) error
// EstimatedDocumentCount returns an estimate of the count of documents in a collection
// using collection metadata.
EstimatedDocumentCount(ctx context.Context, opts ...*mopt.EstimatedDocumentCountOptions) (int64, error)
// Find finds the documents matching the provided filter.
Find(ctx context.Context, filter interface{}, opts ...*mopt.FindOptions) (*mongo.Cursor, error)
// FindOne returns up to one document that matches the provided filter.
FindOne(ctx context.Context, filter interface{}, opts ...*mopt.FindOneOptions) (
*mongo.SingleResult, error)
// FindOneAndDelete returns at most one document that matches the filter. If the filter
// matches multiple documents, only the first document is deleted.
FindOneAndDelete(ctx context.Context, filter interface{}, opts ...*mopt.FindOneAndDeleteOptions) (
*mongo.SingleResult, error)
// FindOneAndReplace returns at most one document that matches the filter. If the filter
// matches multiple documents, FindOneAndReplace returns the first document in the
// collection that matches the filter.
FindOneAndReplace(ctx context.Context, filter, replacement interface{},
opts ...*mopt.FindOneAndReplaceOptions) (*mongo.SingleResult, error)
// FindOneAndUpdate returns at most one document that matches the filter. If the filter
// matches multiple documents, FindOneAndUpdate returns the first document in the
// collection that matches the filter.
FindOneAndUpdate(ctx context.Context, filter, update interface{},
opts ...*mopt.FindOneAndUpdateOptions) (*mongo.SingleResult, error)
// Indexes returns the index view for this collection.
Indexes() mongo.IndexView
// InsertMany inserts the provided documents.
InsertMany(ctx context.Context, documents []interface{}, opts ...*mopt.InsertManyOptions) (
*mongo.InsertManyResult, error)
// InsertOne inserts the provided document.
InsertOne(ctx context.Context, document interface{}, opts ...*mopt.InsertOneOptions) (
*mongo.InsertOneResult, error)
// ReplaceOne replaces at most one document that matches the filter.
ReplaceOne(ctx context.Context, filter, replacement interface{},
opts ...*mopt.ReplaceOptions) (*mongo.UpdateResult, error)
// UpdateByID updates a single document matching the provided filter.
UpdateByID(ctx context.Context, id, update interface{},
opts ...*mopt.UpdateOptions) (*mongo.UpdateResult, error)
// UpdateMany updates the provided documents.
UpdateMany(ctx context.Context, filter, update interface{},
opts ...*mopt.UpdateOptions) (*mongo.UpdateResult, error)
// UpdateOne updates a single document matching the provided filter.
UpdateOne(ctx context.Context, filter, update interface{},
opts ...*mopt.UpdateOptions) (*mongo.UpdateResult, error)
// Watch returns a change stream cursor used to receive notifications of changes to the collection.
Watch(ctx context.Context, pipeline interface{}, opts ...*mopt.ChangeStreamOptions) (
*mongo.ChangeStream, error)
}
Collection defines a MongoDB collection.
type Model ¶
type Model struct {
Collection
// contains filtered or unexported fields
}
Model is a mongodb store model that represents a collection.
func MustNewModel ¶
MustNewModel returns a Model, exits on errors.
func (*Model) Aggregate ¶
func (m *Model) Aggregate(ctx context.Context, v, pipeline interface{}, opts ...*mopt.AggregateOptions) error
Aggregate executes an aggregation pipeline.
func (*Model) DeleteMany ¶
func (m *Model) DeleteMany(ctx context.Context, filter interface{}, opts ...*mopt.DeleteOptions) (int64, error)
DeleteMany deletes documents that match the filter.
func (*Model) DeleteOne ¶
func (m *Model) DeleteOne(ctx context.Context, filter interface{}, opts ...*mopt.DeleteOptions) (int64, error)
DeleteOne deletes the first document that matches the filter.
func (*Model) FindOne ¶
func (m *Model) FindOne(ctx context.Context, v, filter interface{}, opts ...*mopt.FindOneOptions) error
FindOne finds the first document that matches the filter.
func (*Model) FindOneAndDelete ¶
func (m *Model) FindOneAndDelete(ctx context.Context, v, filter interface{}, opts ...*mopt.FindOneAndDeleteOptions) error
FindOneAndDelete finds a single document and deletes it.
func (*Model) FindOneAndReplace ¶
func (m *Model) FindOneAndReplace(ctx context.Context, v, filter, replacement interface{}, opts ...*mopt.FindOneAndReplaceOptions) error
FindOneAndReplace finds a single document and replaces it.
func (*Model) FindOneAndUpdate ¶
func (m *Model) FindOneAndUpdate(ctx context.Context, v, filter, update interface{}, opts ...*mopt.FindOneAndUpdateOptions) error
FindOneAndUpdate finds a single document and updates it.
func (*Model) StartSession ¶
StartSession starts a new session.
type Option ¶
type Option func(opts *options)
Option defines the method to customize a mongo model.
func WithTimeout ¶
WithTimeout set the mon client operation timeout.
type ResultHandler ¶
type ResultHandler func(*mongo.InsertManyResult, error)
ResultHandler is a handler that used to handle results.