Documentation
¶
Overview ¶
Package dbmongo 提供基于 MongoDB 的数据库连接和模型操作功能。
Index ¶
- func NewClient(appCtx fiberhouse.IContext, confPath ...string) (*mongo.Client, error)
- type MongoDb
- func (md *MongoDb) Close() error
- func (md *MongoDb) GetConfPath() string
- func (md *MongoDb) IsHealthy() bool
- func (md *MongoDb) PingTry(ctx context.Context) bool
- func (md *MongoDb) ReNewClient(confPath ...string) (*MongoDb, error)
- func (md *MongoDb) Rebuild(confPath ...interface{}) (interface{}, error)
- type MongoLocator
- type MongoModel
- func (mo *MongoModel) GetClientDatabase(dbName string, opts ...options.Lister[options.DatabaseOptions]) *mongo.Database
- func (mo *MongoModel) GetColl() string
- func (mo *MongoModel) GetCollection(coll string, opts ...options.Lister[options.CollectionOptions]) *mongo.Collection
- func (mo *MongoModel) GetContext() fiberhouse.IContext
- func (mo *MongoModel) GetDB() *MongoDb
- func (mo *MongoModel) GetDatabase(opts ...options.Lister[options.DatabaseOptions]) *mongo.Database
- func (mo *MongoModel) GetDbName() string
- func (mo *MongoModel) GetInstance(namespaceKey string) (interface{}, error)
- func (mo *MongoModel) GetName() string
- func (mo *MongoModel) GetTable() string
- func (mo *MongoModel) SetColl(name string, prefix ...string) fiberhouse.Modeler
- func (mo *MongoModel) SetDbName(name string) fiberhouse.Modeler
- func (mo *MongoModel) SetName(name string) fiberhouse.Locator
- func (mo *MongoModel) SetTable(name string, prefix ...string) fiberhouse.Modeler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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) ReNewClient ¶
ReNewClient 重建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) 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) GetDatabase ¶
func (mo *MongoModel) GetDatabase(opts ...options.Lister[options.DatabaseOptions]) *mongo.Database
GetDatabase 获取默认的库
func (*MongoModel) GetInstance ¶
func (mo *MongoModel) GetInstance(namespaceKey string) (interface{}, error)
GetInstance 获取实例(从全局管理器获取具体的单例)
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 设置默认的集合名
Click to show internal directories.
Click to hide internal directories.