mlib

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MakeMongoFilter

func MakeMongoFilter(c Criteria) bson.D

MakeMongoFilter return sort value for mongo.

func MakeMongoUpdate

func MakeMongoUpdate(val Updates) bson.M

MakeMongoUpdate create bson object.

func NewMongoFindOneOptions

func NewMongoFindOneOptions(c Criteria) *options.FindOneOptions

NewMongoFindOneOptions return options for mongo.

func NewMongoFindOptions

func NewMongoFindOptions(c Criteria) *options.FindOptions

NewMongoFindOptions return options for mongo.

Types

type Client

type Client interface {
	Database(string) Database
	Connect() error
	Disconnect() error
	Ping() error
	StartSession() (mongo.Session, error)
}

Client interface.

func NewClient

func NewClient(cnf *Config) (Client, error)

NewClient create Client.

type Collection

type Collection interface {
	InsertOne(doc interface{}) (interface{}, error)
	InsertMany(docs []interface{}) ([]interface{}, error)
	DeleteOne(filter interface{}) (int64, error)
	DeleteOneByCriteria(criteria Criteria) (int64, error)
	DeleteMany(filter interface{}) (int64, error)
	DeleteManyByCriteria(criteria Criteria) (int64, error)
	UpdateOne(filter interface{}, update interface{}) (int64, error)
	UpdateOneByCriteria(criteria Criteria, update interface{}) (int64, error)
	UpdatePartialOneByCriteria(criteria Criteria, updates Updates) (int64, error)
	UpdateMany(filter interface{}, update interface{}) (int64, error)
	UpdateManyByCriteria(criteria Criteria, update interface{}) (int64, error)
	UpdatePartialManyByCriteria(criteria Criteria, updates Updates) (int64, error)
	ReplaceOne(filter interface{}, replacement interface{}) (int64, error)
	ReplaceOneByCriteria(criteria Criteria, replacement interface{}) (int64, error)
	FindOne(filter interface{}, doc interface{}) error
	FindOneByCriteria(criteria Criteria, doc interface{}) error
	Find(filter interface{}, docs interface{}) error
	FindByCriteria(criteria Criteria, docs interface{}) error
	Count(filter interface{}) (int64, error)
	CountByCriteria(criteria Criteria) (int64, error)
}

Collection interface.

type Config

type Config struct {
	URI string
}

Config is config for database.

func (*Config) ConnString

func (c *Config) ConnString() (connstring.ConnString, error)

ConnString parse string.

type Criteria

type Criteria struct {
	PagingParam
	Sorts   []Sort
	Filters []Filter
}

Criteria is struct for collection.

func NewCriteria

func NewCriteria(query string, v interface{}) (c Criteria, err error)

NewCriteria will parse query string into criteria format.

type Database

type Database interface {
	Collection(name string) Collection
	Client() Client
}

Database interface.

func NewDatabase

func NewDatabase(cnf *Config, client Client) (Database, error)

NewDatabase create Database.

type Filter

type Filter struct {
	Name     string
	Operator string
	Value    interface{}
}

Filter structure of Filter.

type PagingInfo

type PagingInfo struct {
	PagingParam
	TotalRecord int64
}

PagingInfo is struct for paginating.

func (PagingInfo) TotalPage

func (p PagingInfo) TotalPage() int64

TotalPage return total page.

type PagingParam

type PagingParam struct {
	PageSize   int64
	PageNumber int64
}

PagingParam is struct for paginating.

func (PagingParam) Limit

func (p PagingParam) Limit() int64

Limit return limit value.

func (PagingParam) Skip

func (p PagingParam) Skip() int64

Skip return skip value.

type Sort

type Sort struct {
	Name  string
	Value string
}

Sort structure of Sort.

func (Sort) Order

func (s Sort) Order() int

Order is direction value of sort.

type Update

type Update struct {
	Name  string
	Value interface{}
}

Update sructure of Update.

type Updates

type Updates []Update

Updates slice of update.

func NewUpdates

func NewUpdates(doc interface{}, req []string, forb []string) (Updates, error)

NewUpdates create slice of update.

Jump to

Keyboard shortcuts

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