dbmongo

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package dbmongo 提供基于 MongoDB 的数据库连接和模型操作功能。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClient

func NewClient(appCtx fiberhouse.IContext, confPath ...string) (*mongo.Client, error)

NewClient 依据配置实例化不同的db连接实例

Types

type MongoDb

type MongoDb struct {
	Client *mongo.Client
	Ctx    fiberhouse.IContext
	// contains filtered or unexported fields
}

func NewMongoDb

func NewMongoDb(appCtx fiberhouse.IContext, confPath ...string) (*MongoDb, error)

NewMongoDb 创建 MongoDb 实例 dbConfName 可选,指定配置路径名称,默认 constant.DefaultMongoDBConfName

func (*MongoDb) Close

func (md *MongoDb) Close() error

Close 关闭 MongoDB 客户端连接 谨慎使用Close关闭链接

func (*MongoDb) GetConfPath

func (md *MongoDb) GetConfPath() string

GetConfPath 获取当前实例使用的配置路径

func (*MongoDb) IsHealthy

func (md *MongoDb) IsHealthy() bool

IsHealthy 检查MongoDB连接是否健康

func (*MongoDb) PingTry

func (md *MongoDb) PingTry(ctx context.Context) bool

PingTry 仅仅用于监控检查

func (*MongoDb) ReNewClient

func (md *MongoDb) ReNewClient(confPath ...string) (*MongoDb, error)

ReNewClient 重建MongoDB客户端连接

func (*MongoDb) Rebuild

func (md *MongoDb) Rebuild(confPath ...interface{}) (interface{}, error)

Rebuild 重建MongoDB客户端连接

type MongoLocator

type MongoLocator interface {
	fiberhouse.Modeler
	// 获取MongoDb实例
	GetDB() *MongoDb
	// 获取集合名
	GetColl() string
	// 设置集合名,返回模型器接口,以便链式调用
	SetColl(string, ...string) fiberhouse.Modeler // replace interface{}
	// 获取数据库实例,默认使用配置的默认数据库
	GetDatabase(...options.Lister[options.DatabaseOptions]) *mongo.Database
	// 获取指定名称的数据库实例
	GetClientDatabase(string, ...options.Lister[options.DatabaseOptions]) *mongo.Database
	// 获取指定名称的集合实例,默认使用配置的默认数据库
	GetCollection(string, ...options.Lister[options.CollectionOptions]) *mongo.Collection
}

MongoLocator 接口定义了在 frame 中进行 MongoDB 操作的方法。

type MongoModel

type MongoModel struct {
	Ctx fiberhouse.IContext
	Db  *MongoDb

	Coll string
	// contains filtered or unexported fields
}

MongoModel MongoDB模型基类 该结构体实现了MongoLocator接口,用于被具体的业务模型继承 继承该结构体的模型可直接使用其方法操作数据库和集合

func NewMongoModel

func NewMongoModel(ctx fiberhouse.IContext, instanceKey ...fiberhouse.InstanceKey) *MongoModel

NewMongoModel 创建并返回一个MongoModel实例 未注册或名称错误会panic

func (*MongoModel) GetClientDatabase

func (mo *MongoModel) GetClientDatabase(dbName string, opts ...options.Lister[options.DatabaseOptions]) *mongo.Database

GetClientDatabase 获非默认库

func (*MongoModel) GetColl

func (mo *MongoModel) GetColl() string

GetColl 获取默认的集合名

func (*MongoModel) GetCollection

func (mo *MongoModel) GetCollection(coll string, opts ...options.Lister[options.CollectionOptions]) *mongo.Collection

GetCollection 获取默认库下的指定集合 options.Collection().SetReadPreference(readpref.Primary()) 默认读从, 可临时修改读主,一般用于重要业务时,实时读取最新数据

func (*MongoModel) GetContext

func (mo *MongoModel) GetContext() fiberhouse.IContext

GetContext 获取应用上下文

func (*MongoModel) GetDB

func (mo *MongoModel) GetDB() *MongoDb

GetDB 获取MongoDb实例

func (*MongoModel) GetDatabase

func (mo *MongoModel) GetDatabase(opts ...options.Lister[options.DatabaseOptions]) *mongo.Database

GetDatabase 获取默认的库

func (*MongoModel) GetDbName

func (mo *MongoModel) GetDbName() string

GetDbName 获取默认的库名

func (*MongoModel) GetInstance

func (mo *MongoModel) GetInstance(namespaceKey string) (interface{}, error)

GetInstance 获取实例(从全局管理器获取具体的单例)

func (*MongoModel) GetName

func (mo *MongoModel) GetName() string

GetName 获取模型名称

func (*MongoModel) GetTable

func (mo *MongoModel) GetTable() string

GetTable 获取默认的集合名

func (*MongoModel) SetColl

func (mo *MongoModel) SetColl(name string, prefix ...string) fiberhouse.Modeler

SetColl 设置默认的集合名

func (*MongoModel) SetDbName

func (mo *MongoModel) SetDbName(name string) fiberhouse.Modeler

SetDbName 设置默认的库名

func (*MongoModel) SetName

func (mo *MongoModel) SetName(name string) fiberhouse.Locator

SetName 设置模型名称

func (*MongoModel) SetTable

func (mo *MongoModel) SetTable(name string, prefix ...string) fiberhouse.Modeler

SetTable 设置默认的集合名

Jump to

Keyboard shortcuts

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