Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BulkWriteOperation ¶
type ListOption ¶ added in v0.4.5
func (ListOption) GetLimit ¶ added in v0.4.5
func (l ListOption) GetLimit() int
func (ListOption) GetPage ¶ added in v0.4.5
func (l ListOption) GetPage() int
type MongoBulkWriteOperation ¶
type MongoBulkWriteOperation = mongo.WriteModel
type ORMModel ¶
type ORMModel interface {
// 插入数据
// 返回错误
// 传入的必须是结构体指针才可以修改原始数据
Create(data any) (string, error)
// 插入数据
// 等同Create
Insert(data any) error
// 更新或插入数据
// 返回错误
// 传入的必须是结构体指针才可以修改原始数据
// 输入Where(&User{Name:"test"}).Save(&User{Value:"123"})
// 当User表中的Name有test数据时,则修改该数据的Value为 123
// 当User表中的Name没有test数据时,则插入该数据 User{Name:"test",Value:"123"}
Save(data any, value ...any) error
// 更新或插入数据
// 等同Save
Upsert(data any, value ...any) error
// 更新
// 返回错误 考虑更新可能更新多条 不返回ID
// 传入的必须是结构体指针才可以修改原始数据
// Update(&User{ID:123}) 会生成 UPDATE User SET ID = 123
// Update("ID",123) 也会生成 UPDATE User SET ID = 123
Update(data any, value ...any) error
// 批量写入
// 在mongo中datas为[]MongoBulkWriteOperation
// 在sql中datas为[]BulkWriteOperation
// order为写入是否是有序 mongo中使用无序可以提高性能
BulkWrite(datas any, order bool) error
// 事务
// 事务中要使用sessionModel 进行操作 返回error不为 nil 时则会进行回滚
Session(transactionFunc func(sessionModel Session) error) error
// 上下文
GetContext() context.Context
SetContext(ctx context.Context) ORMModel
// 删除
// 传入Delete(&User{ID:123}) 就是删除ID为123的数据
// 也可以直接Where(&User{ID:123}).Delete()
Delete(data ...any) error
// 查询数据
// 会根据限制条件生成查询函数
// 具体查询执行需要在查询函数中进行
Find() ORMQuary
// 过滤条件
// Where只能传入结构体
// 会根据每个结构体的赋值情况进行查询
// Where(&User{ID:123}) 会生成 WHERE User.ID = 123
// Where("ID",123) 也会生成 WHERE User.ID = 123
Where(condition any, value ...any) ORMModel
// WhereIs传入 key和value 根据生成表达式
WhereIs(key string, value any) ORMModel
// WhereNot只能传入结构体
// 会根据每个结构体的赋值情况进行查询
// WhereNot(&User{ID:123}) 会生成 WHERE User.ID <> 123
// WhereNot("ID",123) 也会生成 WHERE User.ID <> 123
WhereNot(condition any, value ...any) ORMModel
// WhereGt只能传入结构体
// 会根据每个结构体的赋值情况进行查询
// WhereGt(&User{ID:123}) 会生成 WHERE User.ID > 123
// WhereGt("ID",123) 也会生成 WHERE User.ID > 123
WhereGt(condition any, value ...any) ORMModel
// WhereLt只能传入结构体
// 会根据每个结构体的赋值情况进行查询
// WhereLt(&User{ID:123}) 会生成 WHERE User.ID < 123
// WhereLt("ID",123) 也会生成 WHERE User.ID < 123
WhereLt(condition any, value ...any) ORMModel
// WhereGte只能传入结构体
// 会根据每个结构体的赋值情况进行查询
// WhereGte(&User{ID:123}) 会生成 WHERE User.ID >= 123
// WhereGte("ID",123) 也会生成 WHERE User.ID >= 123
WhereGte(condition any, value ...any) ORMModel
// WhereLte只能传入结构体
// 会根据每个结构体的赋值情况进行查询
// WhereLte(&User{ID:123}) 会生成 WHERE User.ID <= 123
// WhereLte("ID",123) 也会生成 WHERE User.ID <= 123
WhereLte(condition any, value ...any) ORMModel
// WhereOr只能传入结构体
// 会根据每个结构体的赋值情况进行查询
// Where(&User{ID:12}).WhereOr(&User{ID:123}) 会生成 WHERE User.ID = 12 OR User.ID = 123
// Where("ID",12).WhereOr("ID",123) 也会生成 WHERE User.ID = 12 OR User.ID = 123
WhereOr(condition any, value ...any) ORMModel
// 模糊查询
// 输入WhereLike(&User{Name:"test"})
// 会生成 WHERE User.Name LIKE "%test%"
// 输入WhereLike("Name","_test%")
// 会生成 WHERE User.Name LIKE "_test%"
// Mongo则会使用$regex
// 使用结构体默认使用primitive.Regex{Pattern: "test", Options: "i"}
WhereLike(condition any, value ...any) ORMModel
// 限制查询的数量
Limit(limit int) ORMModel
// 跳过查询个数
// 传入3 则会跳过前3个结果从第4个结果开始取
// 需要配合Limit使用
Offset(offset int) ORMModel
// 正序
// 传入结构体会根据结构体第一个有值的对象进行正序排序
// 如传入Asc(&User{ID:1}) 就会根据User.ID进行排序 ID值不会处理但是要排序的必须有值 且只会根据第一个有值对象进行排序
Asc(condition any) ORMModel
// 逆序
// 传入结构体会根据结构体第一个有值的对象进行倒序排序
// 如传入Desc(&User{ID:1}) 就会根据User.ID进行排序 ID值不会处理但是要排序的必须有值 且只会根据第一个有值对象进行排序
Desc(condition any) ORMModel
// 分页
Page(page, limit int) ORMModel
// 查询匹配到的一条数据
One(data any) error
// 查询全部数据
All(data any) error
// 返回查询个数
Count() int64
// 游标
// 在查询大量数据时可以减少内存占用
// 使用时需要及时使用Close 避免内存泄漏
Cursor() (Cursor, error)
}
Click to show internal directories.
Click to hide internal directories.