mongo

package
v0.0.0-...-aed9a31 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2023 License: Unlicense Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(conf *Config) *mongo.Client

func MergeBsonM

func MergeBsonM(ms ...interface{}) bson.M

MergeBsonM ignores non bson.M type

func PipelineBuilder

func PipelineBuilder() builder

func PipelineJsonBuilder

func PipelineJsonBuilder(pipelineJSON []byte) (builder builder, err error)

func RunInCtxTransaction

func RunInCtxTransaction(ctx context.Context, client *mongo.Client, callback TxFn) error

func RunInTransaction

func RunInTransaction(client *mongo.Client, callback TxFn) error

Types

type AggregateObject

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

func (*AggregateObject) Do

func (o *AggregateObject) Do(results interface{}) error

func (*AggregateObject) DoCount

func (o *AggregateObject) DoCount() (int64, error)

func (*AggregateObject) Pipelines

func (o *AggregateObject) Pipelines(p mongo.Pipeline) *AggregateObject

type ChangeStreamWatchObject

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

func (*ChangeStreamWatchObject) Do

func (o *ChangeStreamWatchObject) Do() (<-chan WatchResult, error)

out will be automatically closed when no value available or error happened

func (*ChangeStreamWatchObject) FullDocumentOnUpdate

func (o *ChangeStreamWatchObject) FullDocumentOnUpdate(full bool) *ChangeStreamWatchObject

func (*ChangeStreamWatchObject) Pipeline

func (*ChangeStreamWatchObject) ResumeAfter

func (o *ChangeStreamWatchObject) ResumeAfter(resumeToken interface{}) *ChangeStreamWatchObject

type Coll

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

func From

func From(coll *mongo.Collection) Coll

func (Coll) Aggregate

func (o Coll) Aggregate(ctx context.Context) *AggregateObject

func (Coll) Count

func (o Coll) Count(ctx context.Context) *CountObject

func (Coll) DeleteMany

func (o Coll) DeleteMany(ctx context.Context) *DeleteManyObject

func (Coll) DeleteOne

func (o Coll) DeleteOne(ctx context.Context) *DeleteOneObject

func (Coll) Distinct

func (o Coll) Distinct(ctx context.Context) *DistinctObject

func (Coll) Drop

func (o Coll) Drop(ctx context.Context) error

func (Coll) FindMany

func (o Coll) FindMany(ctx context.Context) *FindManyObject

func (Coll) FindOne

func (o Coll) FindOne(ctx context.Context) *FindOneObject

func (Coll) FindOneAndDelete

func (o Coll) FindOneAndDelete(ctx context.Context) *FindOneAndDeleteObject

func (Coll) FindOneAndUpdate

func (o Coll) FindOneAndUpdate(ctx context.Context) *FindOneAndUpdateObject

func (Coll) Indexes

func (o Coll) Indexes(ctx context.Context) *IndexesObject

func (Coll) InsertMany

func (o Coll) InsertMany(ctx context.Context) *InsertManyObject

func (Coll) InsertOne

func (o Coll) InsertOne(ctx context.Context) *InsertOneObject

func (Coll) Name

func (o Coll) Name() string

func (Coll) ReplaceOne

func (o Coll) ReplaceOne(ctx context.Context) *ReplaceOneObject

func (Coll) Tx

func (o Coll) Tx(ctx context.Context) *TxObject

func (Coll) Unwrap

func (o Coll) Unwrap() *mongo.Collection

func (Coll) UpdateMany

func (o Coll) UpdateMany(ctx context.Context) *UpdateManyObject

func (Coll) UpdateOne

func (o Coll) UpdateOne(ctx context.Context) *UpdateOneObject

func (Coll) WatchChangeStream

func (o Coll) WatchChangeStream(ctx context.Context) *ChangeStreamWatchObject

type Config

type Config struct {
	Host            string
	Port            string
	DbName          string
	Username        string
	Password        string
	PasswordSet     bool
	MaxPoolSize     int64
	MinPoolSize     int64
	ConnectTimeout  time.Duration
	MaxConnIdleTime time.Duration
}

type CountObject

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

func (*CountObject) Do

func (o *CountObject) Do() (int64, error)

func (*CountObject) Limit

func (o *CountObject) Limit(i int64) *CountObject

func (*CountObject) Skip

func (o *CountObject) Skip(i int64) *CountObject

func (*CountObject) Where

func (o *CountObject) Where(filter interface{}) *CountObject

type DeleteManyObject

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

func (*DeleteManyObject) Do

func (o *DeleteManyObject) Do() (deleteCount int, err error)

func (*DeleteManyObject) Where

func (o *DeleteManyObject) Where(filter interface{}) *DeleteManyObject

type DeleteOneObject

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

func (*DeleteOneObject) Do

func (o *DeleteOneObject) Do() (deleteCount int, err error)

func (*DeleteOneObject) Where

func (o *DeleteOneObject) Where(filter interface{}) *DeleteOneObject

type DistinctObject

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

func (*DistinctObject) Do

func (o *DistinctObject) Do() ([]interface{}, error)

func (*DistinctObject) Field

func (o *DistinctObject) Field(fieldName string) *DistinctObject

func (*DistinctObject) Where

func (o *DistinctObject) Where(filter interface{}) *DistinctObject

type FindManyObject

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

func (*FindManyObject) Collation

func (o *FindManyObject) Collation(c *options.Collation) *FindManyObject

func (*FindManyObject) Do

func (o *FindManyObject) Do(results interface{}) error

func (*FindManyObject) DoStream

func (o *FindManyObject) DoStream() (chan interface{}, error)

TODO: 1. customize element type 2. 将来 golang 支持泛型后,可以用更优雅的方式改进这个函数 当错误发生或者context done,或者没有更多元素时,out chan会被自行关闭

func (*FindManyObject) Limit

func (o *FindManyObject) Limit(i int64) *FindManyObject

func (*FindManyObject) Select

func (o *FindManyObject) Select(projection interface{}) *FindManyObject

func (*FindManyObject) Skip

func (o *FindManyObject) Skip(i int64) *FindManyObject

func (*FindManyObject) Sort

func (o *FindManyObject) Sort(sort interface{}) *FindManyObject

func (*FindManyObject) Where

func (o *FindManyObject) Where(filter interface{}) *FindManyObject

type FindOneAndDeleteObject

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

func (*FindOneAndDeleteObject) Do

func (o *FindOneAndDeleteObject) Do(result interface{}) error

func (*FindOneAndDeleteObject) Select

func (o *FindOneAndDeleteObject) Select(projection interface{}) *FindOneAndDeleteObject

func (*FindOneAndDeleteObject) Sort

func (o *FindOneAndDeleteObject) Sort(sort interface{}) *FindOneAndDeleteObject

func (*FindOneAndDeleteObject) Where

func (o *FindOneAndDeleteObject) Where(filter interface{}) *FindOneAndDeleteObject

type FindOneAndUpdateObject

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

func (*FindOneAndUpdateObject) Do

func (o *FindOneAndUpdateObject) Do(result interface{}) error

func (*FindOneAndUpdateObject) ReturnAfter

func (o *FindOneAndUpdateObject) ReturnAfter(returnAfter bool) *FindOneAndUpdateObject

func (*FindOneAndUpdateObject) Select

func (o *FindOneAndUpdateObject) Select(projection interface{}) *FindOneAndUpdateObject

func (*FindOneAndUpdateObject) Set

func (o *FindOneAndUpdateObject) Set(doc interface{}) *FindOneAndUpdateObject

func (*FindOneAndUpdateObject) Sort

func (o *FindOneAndUpdateObject) Sort(sort interface{}) *FindOneAndUpdateObject

func (*FindOneAndUpdateObject) Unset

func (o *FindOneAndUpdateObject) Unset(doc interface{}) *FindOneAndUpdateObject

func (*FindOneAndUpdateObject) Updater

func (o *FindOneAndUpdateObject) Updater(doc interface{}) *FindOneAndUpdateObject

func (*FindOneAndUpdateObject) Upsert

func (*FindOneAndUpdateObject) Where

func (o *FindOneAndUpdateObject) Where(filter interface{}) *FindOneAndUpdateObject

type FindOneObject

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

func (*FindOneObject) Do

func (o *FindOneObject) Do(result interface{}) error

func (*FindOneObject) Select

func (o *FindOneObject) Select(projection interface{}) *FindOneObject

func (*FindOneObject) Skip

func (o *FindOneObject) Skip(i int64) *FindOneObject

func (*FindOneObject) Sort

func (o *FindOneObject) Sort(sort interface{}) *FindOneObject

func (*FindOneObject) Where

func (o *FindOneObject) Where(filter interface{}) *FindOneObject

type IndexesObject

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

func (*IndexesObject) Do

func (o *IndexesObject) Do() ([]string, error)

func (*IndexesObject) Keys

func (o *IndexesObject) Keys(keys interface{}) *IndexesObject

func (*IndexesObject) TTLKey

func (o *IndexesObject) TTLKey(key interface{}, expireSeconds int) *IndexesObject

TTLKey: key should be date specifying the expire time

func (*IndexesObject) Unique

func (o *IndexesObject) Unique() *IndexesObject

type InsertManyObject

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

func (*InsertManyObject) Do

func (o *InsertManyObject) Do(documents []interface{}) (*mongo.InsertManyResult, error)

func (*InsertManyObject) Ordered

func (o *InsertManyObject) Ordered(ordered bool) *InsertManyObject

If true, no writes will be executed after one fails. The default value is true.

type InsertOneObject

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

func (*InsertOneObject) Do

func (o *InsertOneObject) Do(document interface{}) (ID string, err error)

type PipelineBuilderType

type PipelineBuilderType mongo.Pipeline

type ReplaceOneObject

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

func (*ReplaceOneObject) Do

func (*ReplaceOneObject) Replace

func (o *ReplaceOneObject) Replace(doc interface{}) *ReplaceOneObject

func (*ReplaceOneObject) Upsert

func (o *ReplaceOneObject) Upsert() *ReplaceOneObject

func (*ReplaceOneObject) Where

func (o *ReplaceOneObject) Where(filter interface{}) *ReplaceOneObject

type TxFn

type TxFn = func(sessCtx mongo.SessionContext) (interface{}, error)

type TxObject

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

func (*TxObject) Run

func (o *TxObject) Run(fn TxFn) error

type UpdateManyObject

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

func (*UpdateManyObject) Do

func (*UpdateManyObject) Set

func (o *UpdateManyObject) Set(doc interface{}) *UpdateManyObject

func (*UpdateManyObject) Updater

func (o *UpdateManyObject) Updater(doc interface{}) *UpdateManyObject

func (*UpdateManyObject) Upsert

func (o *UpdateManyObject) Upsert() *UpdateManyObject

func (*UpdateManyObject) Where

func (o *UpdateManyObject) Where(filter interface{}) *UpdateManyObject

type UpdateOneObject

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

func (*UpdateOneObject) Do

func (o *UpdateOneObject) Do() (string, error)

warning: 如果没有发生insert(upsert时,已经存在匹配的记录),则不会返回ID

func (*UpdateOneObject) Pull

func (o *UpdateOneObject) Pull(doc interface{}) *UpdateOneObject

func (*UpdateOneObject) Set

func (o *UpdateOneObject) Set(doc interface{}) *UpdateOneObject

func (*UpdateOneObject) Unset

func (o *UpdateOneObject) Unset(doc interface{}) *UpdateOneObject

func (*UpdateOneObject) Updater

func (o *UpdateOneObject) Updater(doc interface{}) *UpdateOneObject

func (*UpdateOneObject) Upsert

func (o *UpdateOneObject) Upsert() *UpdateOneObject

func (*UpdateOneObject) Where

func (o *UpdateOneObject) Where(filter interface{}) *UpdateOneObject

type WatchResult

type WatchResult struct {
	ID                string              `bson:"-"`
	ClusterTime       primitive.Timestamp `bson:"clusterTime"`
	Namespace         WrNamespace         `bson:"ns"`
	ResumeToken       bson.M              `bson:"_id"`
	OperationType     string              `bson:"operationType"`
	FullDocument      bson.M              `bson:"fullDocument"`
	DocumentKey       WrDocumentKey       `bson:"documentKey"`
	UpdateDescription WrUpdateDescription `bson:"updateDescription"`
}

type WrDocumentKey

type WrDocumentKey struct {
	ID primitive.ObjectID `bson:"_id"`
}

type WrNamespace

type WrNamespace struct {
	DB   string `bson:"db"`
	Coll string `bson:"coll"`
}

type WrUpdateDescription

type WrUpdateDescription struct {
	UpdatedFields   bson.M   `bson:"updatedFields"`
	RemovedFields   []string `bson:"removedFields"`
	TruncatedArrays []bson.M `bson:"truncatedArrays"`
}

Jump to

Keyboard shortcuts

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