mgoDB

package
v1.6.22 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetMgoClient

func GetMgoClient(config map[string]string) (*mongo.Client, error)

GetMgoClient 获取mongodb连接

Types

type IMgoRepository

type IMgoRepository interface {
	//Add 插入单个
	// entity  结构体
	Add(entity interface{}) (id interface{}, err error)

	//AddMany 插入多个
	// entity 结构体切片
	AddMany(entity ...interface{}) (ids []interface{}, err error)

	//Remove 删除单个
	// id 主键
	Remove(id ...interface{}) (count int64, err error)

	// Set filterKey   过滤的字段名称[与标签一致]
	// filterValue 过滤的字段值
	// projection  要查询的字段
	// entity      更新的结构体(支持局部更新)
	Set(filterKey string, filterValue interface{}, entity interface{}) (count int64, err error)

	//FindById 单条件查询单个[id]
	// filterValue 过滤的字段值
	// filterField 过滤需要的字段,nil 为全部 ,[]string{ “字段1”,“字段2”...}
	// result      查询的结果(指针)
	FindById(id interface{}, filterField []string, result interface{}) (err error)

	//FindByIds 单条件查询单个[id]
	// filterValue 过滤的字段值
	// filterField 过滤需要的字段,nil 为全部 ,[]string{ “字段1”,“字段2”...}
	// result      查询的结果(指针)
	FindByIds(ids []interface{}, filterField []string, result interface{}) (err error)

	//Find 单条件查询
	// filterKey   过滤的字段名称[与标签一致]
	// filterValue 过滤的字段值
	// filterField 过滤需要的字段,nil 为全部 ,[]string{ “字段1”,“字段2”...}
	// result      查询的结果
	Find(filterKey string, filterValue interface{}, filterField []string, result interface{}) (err error)

	//FindMany 多条件查询
	// filterMap   过滤的条件集合[与标签一致]
	// filterField 过滤需要的字段,nil 为全部 ,[]string{ “字段1”,“字段2”...}
	// result      查询的结果
	FindMany(filterMap map[string]interface{}, filterField []string, result interface{}) (err error)

	//FindCount 获取总数
	// filterMap   过滤的条件集合
	FindCount(filterMap map[string]interface{}) (count int64, err error)

	//FindPage 查询分页
	// filterMap 查询条件[与标签一致]
	// pageIndex  页数(从1开始)
	// size 获取个数
	// sortName 排序字段
	// desc 是否倒序(1为正序,-1为倒序) 1 为最初时间读取 , -1 为最新时间读取
	// filterField 过滤需要的字段,nil 为全部 ,[]string{ “字段1”,“字段2”...}
	// result 查询结果(结构体切片)
	// isTotal 总数
	FindPage(filterMap map[string]interface{}, pageIndex, size int64, sortName string, desc int, filterField []string, result interface{}, isTotal bool) (totalCount int64, err error)
}

IMgoRepository 仓储接口

type IndexItem added in v1.6.16

type IndexItem struct {
	Elems  []string //字段
	Unique bool     //是否唯一
	Desc   bool     //是否降序
}

IndexItem 索引项

type MgoContent

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

MgoContent 数据库上下文

func DataBaseMapping

func DataBaseMapping(mappingName string, configFn func(mappingName string) map[string]string, createIndexFn func() map[string][]IndexItem) (*MgoContent, error)

DataBaseMapping 添加映射 @client 连接对象 @dataName 数据库名 @createIndex 数据库表索引

func (*MgoContent) GetMgoRepository

func (m *MgoContent) GetMgoRepository(collectionName string) (IMgoRepository, bool)

GetMgoRepository 获取集合仓储 collectionName 结构体

type MgoRepository

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

MgoRepository 数据库仓储

func (*MgoRepository) Add added in v1.6.0

func (m *MgoRepository) Add(entity interface{}) (id interface{}, err error)

Add 插入单个 entity 结构体

func (*MgoRepository) AddMany added in v1.6.0

func (m *MgoRepository) AddMany(entity ...interface{}) (ids []interface{}, err error)

AddMany 插入多个 entity 结构体切片

func (*MgoRepository) Find

func (m *MgoRepository) Find(filterKey string, filterValue interface{}, filterField []string, result interface{}) (err error)

Find 单条件查询单个 filterKey 过滤的字段名称 filterValue 过滤的字段值 result 查询的结果(指针)

func (*MgoRepository) FindById

func (m *MgoRepository) FindById(id interface{}, filterField []string, result interface{}) (err error)

FindById 单条件查询单个[id] id 过滤的字段值 result 查询的结果(指针)

func (*MgoRepository) FindByIds added in v1.6.11

func (m *MgoRepository) FindByIds(ids []interface{}, filterField []string, result interface{}) (err error)

FindByIds 单条件查询多个[ids] filterValue 过滤的字段值 result 查询的结果(指针)

func (*MgoRepository) FindCount

func (m *MgoRepository) FindCount(filterMap map[string]interface{}) (count int64, err error)

FindCount 查询总数 filterMap 查询条件

func (*MgoRepository) FindMany

func (m *MgoRepository) FindMany(filterMap map[string]interface{}, filterField []string, result interface{}) error

FindMany 多条件查询 filterMap 过滤的条件集合 result 查询的结果切片(指针)

func (*MgoRepository) FindPage

func (m *MgoRepository) FindPage(filterMap map[string]interface{}, pageIndex, size int64, sortName string, desc int, filterField []string, result interface{}, isTotal bool) (totalCount int64, err error)

FindPage 查询分页 filterMap 查询条件

	  模糊查询:map["name"] = primitive.Regex{Pattern: "深入"}
   查询createtime>=3: bson.M{"createtime": bson.M{"$gte": 2}}
   二级结构体查询: map["author.country"] = countryChina

pageIndex 页数(从1开始) size 获取个数 sortName 排序字段 desc 是否倒序(1为正序,-1为倒序) 1 为最初时间读取 , -1 为最新时间读取 filterField 过滤需要的字段,nil 为全部 ,[]string{ “字段1”,“字段2”...} result 查询结果(结构体切片) isTotal 总数

func (*MgoRepository) Remove added in v1.6.0

func (m *MgoRepository) Remove(ids ...interface{}) (count int64, err error)

Remove 删除单个 id 主键切片

func (*MgoRepository) Set added in v1.6.0

func (m *MgoRepository) Set(filterKey string, filterValue interface{}, entity interface{}) (count int64, err error)

Set filterKey 过滤的字段名称 filterValue 过滤的字段值 entity 更新的结构体(支持局部更新)

func (*MgoRepository) SetIndex added in v1.6.16

func (m *MgoRepository) SetIndex(elems []string) RepositoryIndexes

SetIndex @elems 索引集合(正序)

func (*MgoRepository) SetIndexDesc added in v1.6.16

func (m *MgoRepository) SetIndexDesc(elems []string) RepositoryIndexes

SetIndexDesc @elems 索引集合(倒序)

func (*MgoRepository) SetUnique added in v1.6.16

func (m *MgoRepository) SetUnique(elems []string) RepositoryIndexes

SetUnique @elems 唯一索引集合

func (*MgoRepository) SetUniqueDesc added in v1.6.16

func (m *MgoRepository) SetUniqueDesc(elems []string) RepositoryIndexes

SetUniqueDesc @elems 索引集合(倒序)

type RepositoryIndexes added in v1.6.16

type RepositoryIndexes interface {
	SetIndex(elems []string) RepositoryIndexes
	SetIndexDesc(elems []string) RepositoryIndexes
	SetUnique(elems []string) RepositoryIndexes
	SetUniqueDesc(elems []string) RepositoryIndexes
}

RepositoryIndexes 仓储索引创建

Jump to

Keyboard shortcuts

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