mongo

package
v1.0.7 Latest Latest
Warning

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

Go to latest
Published: May 20, 2025 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetMongoUrl

func GetMongoUrl(setting Setting) string

func MonMongoPlugin

func MonMongoPlugin(ctx context.Context, doc interface{}, opType operator.OpType, opts ...interface{}) error

MonMongoPlugin mon打点插件。其中的doc或者opt中必须传指针类型的

func NewInsertManyMonOpt

func NewInsertManyMonOpt(database, collection string) options.InsertManyOptions

func NewInsertMonOpt

func NewInsertMonOpt(database, collection string) options.InsertOneOptions

NewInsertMonOpt 使用时将其放置到Insert的opt中 示例:cli.InsertOne(ctx, UserInfo{}, mongo.NewInsertMonOpt("test_db", "test_collection"))

func NewQueryMonOpt

func NewQueryMonOpt(database, collection string) options.FindOptions

NewQueryMonOpt 使用时将其放置到Find的opt中 示例: cli := WrapperMongo.Client.Database("test_db").Collection("test_collection")

cli.Find(ctx, bson.M{"_id": objId}, mongo.NewQueryMonOpt("test_db", "test_collection")).One(&res)

func NewRemoveMonOpt

func NewRemoveMonOpt(database, collection string) options.RemoveOptions

func NewReplaceMonOpt

func NewReplaceMonOpt(database, collection string) options.ReplaceOptions

func NewUpdateMonOpt

func NewUpdateMonOpt(database, collection string) options.UpdateOptions

func NewUpsertMonOpt

func NewUpsertMonOpt(database, collection string) options.UpsertOptions

Types

type Auth

type Auth struct {
	// AuthMechanism: the mechanism to use for authentication. Supported values include "SCRAM-SHA-256", "SCRAM-SHA-1",
	// "MONGODB-CR", "PLAIN", "GSSAPI", "MONGODB-X509", and "MONGODB-AWS". This can also be set through the "authMechanism"
	// 一般情况 "SCRAM-SHA-256", "SCRAM-SHA-1"
	AuthMechanism string `mapstructure:"auth_mechanism"`
	// AuthSource: the name of the database to use for authentication. This defaults to "$external" for MONGODB-X509,
	// GSSAPI, and PLAIN and "admin" for all other mechanisms. This can also be set through the "authSource" URI option
	// 一般情况上为admin
	AuthSource string `mapstructure:"auth_source"`
	Username   string `mapstructure:"username"`
	Password   string `mapstructure:"password"`
	// PasswordSet对于对于GSSAPI生效,其它此字段被忽略
	PasswordSet bool `mapstructure:"password_set"`
}

type MonMongoHook

type MonMongoHook struct {
	DB            string
	Collection    string
	OperationName string
	StartTime     time.Time
}

func (*MonMongoHook) After

func (p *MonMongoHook) After() error

func (*MonMongoHook) Before

func (p *MonMongoHook) Before() error

type Setting

type Setting struct {
	Name string `mapstructure:"name"`
	// shading或者replica_set,默认replica_set
	Type string `mapstructure:"type"`
	// 地址,不能为空
	Addr []string `mapstructure:"addr"`
	// primary、primaryPreferred、secondary、secondaryPreferred、nearest
	// 默认nearest
	ReadPreferenceMode string `mapstructure:"read_preference_mode"`
	//mongodb版本必须大于3.4才能设置,否侧报错,默认0即可
	MaxStalenessMS int64 `mapstructure:"max_staleness_ms"`
	// 最大连接数量,默认5
	MaxPoolSize uint64 `mapstructure:"max_pool_size"`
	// 最小连接数量,默认2
	MinPoolSize uint64 `mapstructure:"minPoolSize"`
	// 连接超时时间,默认2000ms
	ConnectTimeoutMs int64 `mapstructure:"connect_timeout_ms"`
	// 操作超时时间,默认200ms
	SocketTimeoutMS int64 `mapstructure:"socket_timeout_ms"`
	// 权限
	Auth *Auth `mapstructure:"auth"`
}

type WrapperMongo

type WrapperMongo struct {
	Client *qmgo.Client
	Name   string
}

func InitMongo

func InitMongo(setting Setting, middleware ...callback) (*WrapperMongo, error)

InitMongo 返回mongo连接池实例 用法:mongoPool.Client.Database("test_db").Collection("test_collection").

Find(ctx, bson.M{"_id": objId}).
One(&res)

依赖Qmgo,文档地址:https://github.com/qiniu/qmgo

func (*WrapperMongo) Close

func (w *WrapperMongo) Close()

Close 关闭连接池

Jump to

Keyboard shortcuts

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