orm

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2024 License: Apache-2.0 Imports: 14 Imported by: 5

README

orm

Documentation

Overview

Package orm 本地 horm, 他不会访问 server 代理层,而是直接访问数据库

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseResult

func ParseResult(node *obj.Tree) (bool, interface{}, error)

ParseResult 解析结果

Types

type ORM

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

ORM 统一接入协议 本地 orm 的实现

func NewORM

func NewORM(dbName string) *ORM

NewORM 创建 local orm 客户端

func (*ORM) Between

func (o *ORM) Between(key string, start, end interface{}) *ORM

func (*ORM) BitCount

func (o *ORM) BitCount(key string, start, end int) *ORM

BitCount 计算给定字符串中,被设置为 1 的比特位的数量 param: key string param: start int 可以使用负数值: 比如 -1 表示最后一个字节, -2 表示倒数第二个字节,以此类推 param: end int 可以使用负数值: 比如 -1 表示最后一个字节, -2 表示倒数第二个字节,以此类推

func (*ORM) Column

func (o *ORM) Column(columns ...string) *ORM

Column 列

func (*ORM) Decr

func (o *ORM) Decr(key string) *ORM

Decr 将 key 中储存的数字值减一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 param: key string

func (*ORM) Del

func (o *ORM) Del(key string) *ORM

Del 删除已存在的键。不存在的 key 会被忽略。 param: key string

func (*ORM) Delete

func (o *ORM) Delete(where ...horm.Where) *ORM

Delete 根据条件删除

func (*ORM) DeleteBy

func (o *ORM) DeleteBy(key string, value interface{}, kvs ...interface{}) *ORM

DeleteBy find_all where key1=value1 AND key2=value2 ... input must be key, value, key, value, key, value ...

func (*ORM) Eq

func (o *ORM) Eq(key string, value interface{}, kvs ...interface{}) *ORM

Eq equal mean where key1=value1 AND key2=value2 ... input must be key, value, key, value, key, value ...

func (*ORM) Exec

func (o *ORM) Exec(ctx context.Context, retReceiver ...interface{}) (isNil bool, err error)

Exec 单执行单元 result 接收结果的指针

func (*ORM) Exists

func (o *ORM) Exists(key string) *ORM

Exists 查看值是否存在 exists param: key string

func (*ORM) Expire

func (o *ORM) Expire(key string, ttl int) *ORM

Expire 设置 key 的过期时间,key 过期后将不再可用。单位以秒计。 param: key string param: int ttl 到期时间,ttl秒

func (*ORM) Find

func (o *ORM) Find(where ...horm.Where) *ORM

Find 查询满足条件的一条数据

func (*ORM) FindAll

func (o *ORM) FindAll(where ...horm.Where) *ORM

FindAll 查询满足条件的所有数据

func (*ORM) FindAllBy

func (o *ORM) FindAllBy(key string, value interface{}, kvs ...interface{}) *ORM

FindAllBy find_all where key1=value1 AND key2=value2 ... input must be key, value, key, value, key, value ...

func (*ORM) FindBy

func (o *ORM) FindBy(key string, value interface{}, kvs ...interface{}) *ORM

FindBy find where key1=value1 AND key2=value2 ... input must be key, value, key, value, key, value ...

func (*ORM) Get

func (o *ORM) Get(key string) *ORM

Get 获取指定 key 的值。如果 key 不存在,返回 nil 。可用 IsNil(err) 判断是否key不存在,如果key储存的值不是字符串类型,返回一个错误。 param: key string

func (*ORM) GetBit

func (o *ORM) GetBit(key string, offset uint32) *ORM

GetBit 获取指定偏移量上的位 param: key string param: offset uint32 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)

func (*ORM) GetCoder

func (o *ORM) GetCoder() codec.Codec

GetCoder 获取编解码器

func (*ORM) GetSet

func (o *ORM) GetSet(key string, v interface{}) *ORM

GetSet 设置给定 key 的值。如果 key 已经存储其他值, GetSet 就覆写旧值,并返回原来的值,如果原来未设置值,则返回报错 nil returned param: key string param: v interface{} 任意类型数据

func (*ORM) Group

func (o *ORM) Group(group ...string) *ORM

Group 分组 group by

func (*ORM) Gt

func (o *ORM) Gt(key string, value interface{}) *ORM

func (*ORM) Gte

func (o *ORM) Gte(key string, value interface{}) *ORM

func (*ORM) HDel

func (o *ORM) HDel(key string, field ...interface{}) *ORM

HDel 删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。 param: keyfield interface{},删除指定key的field数据,这里输入的第一参数为key,其他为多个field,至少得有一个field

func (*ORM) HExists

func (o *ORM) HExists(key string, field interface{}) *ORM

HExists 查看哈希表的指定字段是否存在。 param: key string param: field interface{}

func (*ORM) HGet

func (o *ORM) HGet(key string, field interface{}) *ORM

HGet 数据从redis hget 出来之后反序列化并赋值给 v param: key string param: field string

func (*ORM) HGetAll

func (o *ORM) HGetAll(key string) *ORM

HGetAll 返回哈希表中,所有的字段和值。 param: key string

func (*ORM) HIncrBy

func (o *ORM) HIncrBy(key string, field string, v int) *ORM

HIncrBy 为哈希表中的字段值加上指定增量值。 param: key string param: field string param: n string 自增数量

func (*ORM) HIncrByFloat

func (o *ORM) HIncrByFloat(key string, field string, v float64) *ORM

HIncrByFloat 为哈希表中的字段值加上指定增量浮点数。 param: key string param: field string param: v float64 自增数量

func (*ORM) HLen

func (o *ORM) HLen(key string) *ORM

HLen 获取哈希表中字段的数量。 param: key string

func (*ORM) HSet

func (o *ORM) HSet(key string, field, v interface{}, args ...interface{}) *ORM

HSet 为哈希表中的字段赋值 。 param: key string param: field interface{} 其中field建议为字符串,可以为整数,浮点数 param: v interface{} 任意类型数据 param: args ...interface{} 多条数据,按照filed,value 的格式,其中field建议为字符串,可以为整数,浮点数

func (*ORM) HSetNx

func (o *ORM) HSetNx(key string, filed interface{}, value interface{}) *ORM

HSetNx 为哈希表中不存在的的字段赋值 。 param: key string param: field string param: value interface{}

func (*ORM) HStrLen

func (o *ORM) HStrLen(key string, field interface{}) *ORM

HStrLen 获取哈希表某个字段长度。 param: key string param: field string

func (*ORM) HVals

func (o *ORM) HVals(key string) *ORM

HVals 返回所有的 value param: key string

func (*ORM) Having

func (o *ORM) Having(having horm.Where) *ORM

Having 分组条件

func (*ORM) HighLight

func (o *ORM) HighLight(fields []string, preTag, postTag string) *ORM

HighLight 返回高亮

func (*ORM) Hkeys

func (o *ORM) Hkeys(key string) *ORM

Hkeys 获取哈希表中的所有域(field)。 param: key string

func (*ORM) HmGet

func (o *ORM) HmGet(key string, fields ...string) *ORM

HmGet 返回哈希表中,一个或多个给定字段的值。 param: key string param: fields string 需要返回的域

func (*ORM) HmSet

func (o *ORM) HmSet(key string, v interface{}) *ORM

HmSet 把map数据设置到哈希表中。 param: key string param: v map[string]interface{} 、或者 struct

func (*ORM) ID

func (o *ORM) ID(value interface{}) *ORM

ID elastic 按照 _id 查询

func (*ORM) Incr

func (o *ORM) Incr(key string) *ORM

Incr 将 key 中储存的数字值增一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 param: key string

func (*ORM) IncrBy

func (o *ORM) IncrBy(key string, n int) *ORM

IncrBy 将 key 中储存的数字加上指定的增量值。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 param: key string param: n string 自增数量

func (*ORM) Insert

func (o *ORM) Insert(data interface{}) *ORM

Insert (批量)插入数据,参数可以是 struct / []struct / Map / []Map

func (*ORM) LLen

func (o *ORM) LLen(key string) *ORM

LLen 返回列表的长度。 如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。 如果 key 不是列表类型,返回一个错误。 param: key string

func (*ORM) LPop

func (o *ORM) LPop(key string) *ORM

LPop 移除并返回列表的第一个元素。 param: key string

func (*ORM) LPush

func (o *ORM) LPush(key string, v ...interface{}) *ORM

LPush 将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。 param: key string param: v interface{} 任意类型数据

func (*ORM) Like

func (o *ORM) Like(key string, value interface{}) *ORM

func (*ORM) Limit

func (o *ORM) Limit(limit int, offset ...uint64) *ORM

Limit 排序

func (*ORM) Lt

func (o *ORM) Lt(key string, value interface{}) *ORM

func (*ORM) Lte

func (o *ORM) Lte(key string, value interface{}) *ORM

func (*ORM) MGet

func (o *ORM) MGet(keys ...string) *ORM

MGet 返回多个 key 的 value param: keys string

func (*ORM) MSet

func (o *ORM) MSet(values map[string]interface{}) *ORM

MSet 批量设置一个或多个 key-value 对 param: values map[string]interface{} // value will marshal 注意,本接口 Prefix 一定要在 MSet 之前设置,这里所有的 key 都会被加上 Prefix

func (*ORM) Match

func (o *ORM) Match(key string, value interface{}) *ORM

func (*ORM) MatchPhrase

func (o *ORM) MatchPhrase(key string, value interface{}) *ORM

func (*ORM) Name

func (o *ORM) Name(name string) *ORM

Name 设置表名

func (*ORM) Not

func (o *ORM) Not(key string, value interface{}) *ORM

func (*ORM) NotBetween

func (o *ORM) NotBetween(key string, start, end interface{}) *ORM

func (*ORM) NotLike

func (o *ORM) NotLike(key string, value interface{}) *ORM

func (*ORM) NotMatch

func (o *ORM) NotMatch(key string, value interface{}) *ORM

func (*ORM) NotMatchPhrase

func (o *ORM) NotMatchPhrase(key string, value interface{}) *ORM

func (*ORM) Op

func (o *ORM) Op(op string) *ORM

Op 设置操作

func (*ORM) Order

func (o *ORM) Order(orders ...string) *ORM

Order 排序, 首字母 + 表示升序, - 表示降序

func (*ORM) Page

func (o *ORM) Page(page, pageSize int) *ORM

Page 分页

func (*ORM) RPop

func (o *ORM) RPop(key string) *ORM

RPop 移除列表的最后一个元素,返回值为移除的元素。 param: key string

func (*ORM) RPush

func (o *ORM) RPush(key string, v ...interface{}) *ORM

RPush 将一个或多个值插入到列表的尾部(最右边)。如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。 param: key string param: v interface{} 任意类型数据

func (*ORM) Refresh

func (o *ORM) Refresh() *ORM

Refresh 更新数据立即刷新。

func (*ORM) Replace

func (o *ORM) Replace(data interface{}) *ORM

Replace (batch) (批量)替换数据,参数可以是 struct / []struct / Map / []Map

func (*ORM) SAdd

func (o *ORM) SAdd(key string, v ...interface{}) *ORM

SAdd 将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。 param: key string param: v ...interface{} 任意类型的多条数据,但是务必确保各条数据的类型保持一致

func (*ORM) SCard

func (o *ORM) SCard(key string) *ORM

SCard 返回集合中元素的数量。 param: key string

func (*ORM) SIsMember

func (o *ORM) SIsMember(key string, member interface{}) *ORM

SIsMember 判断成员元素是否是集合的成员。 param: key string param: member interface{} 要检索的任意类型数据

func (*ORM) SMembers

func (o *ORM) SMembers(key string) *ORM

SMembers 返回集合中的所有的成员。 不存在的集合 key 被视为空集合。 param: key string

func (*ORM) SMove

func (o *ORM) SMove(source, destination string, member interface{}) *ORM

SMove 将指定成员 member 元素从 source 集合移动到 destination 集合。 param: source string param: destination string param: member interface{} 要移动的成员,任意类型

func (*ORM) SPop

func (o *ORM) SPop(key string, count int) *ORM

SPop 移除集合中的指定 key 的一个或多个随机成员,移除后会返回移除的成员。 param: key string param: int count

func (*ORM) SRandMember

func (o *ORM) SRandMember(key string, count int) *ORM

SRandMember 返回集合中的count个随机元素。 param: key string param: count int 随机返回元素个数。 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。 如果 count 大于等于集合基数,那么返回整个集合。 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

func (*ORM) SRem

func (o *ORM) SRem(key string, members ...interface{}) *ORM

SRem 移除集合中的一个或多个成员元素,不存在的成员元素会被忽略 param: key string param: v ...interface{} 任意类型的多条数据

func (*ORM) Scroll

func (o *ORM) Scroll(scroll string, size int, where ...horm.Where) *ORM

Scroll 查询,size 为每次 scroll 大小,where 为 scroll 条件。

func (*ORM) ScrollByID

func (o *ORM) ScrollByID(scrollID string) *ORM

ScrollByID 根据 scrollID 滚动查询。

func (*ORM) Set

func (o *ORM) Set(key string, value interface{}, args ...interface{}) *ORM

Set 设置给定 key 的值。如果 key 已经存储其他值, Set 就覆写旧值。 param: key string param: value interface{} 任意类型数据 param: args ...interface{} set的其他参数

func (*ORM) SetBit

func (o *ORM) SetBit(key string, offset uint32, value bool) *ORM

SetBit 设置或清除指定偏移量上的位 param: key string param: offset uint32 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内) param: value bool true:设置为1,false:设置为0

func (*ORM) SetEX

func (o *ORM) SetEX(key string, v interface{}, ttl int) *ORM

SetEX 指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。 param: key string param: v interface{} 任意类型数据 param: ttl int 到期时间

func (*ORM) SetNX

func (o *ORM) SetNX(key string, v interface{}) *ORM

SetNX redis.SetNX 指定的 key 不存在时,为 key 设置指定的值。 param: key string param: v interface{} 任意类型数据

func (*ORM) SetParam

func (o *ORM) SetParam(key string, value interface{}) *ORM

SetParam 与数据库特性相关的附加参数,例如 redis 的WITHSCORES,以及 elastic 的 collapse、runtime_mappings、track_total_hits 等等。

func (*ORM) Shard

func (o *ORM) Shard(shard ...string) *ORM

Shard 分片、分表

func (*ORM) Source

func (o *ORM) Source(q string, args ...interface{}) *ORM

Source 直接输入查询语句查询

func (*ORM) TTL

func (o *ORM) TTL(key string) *ORM

TTL 以秒为单位返回 key 的剩余过期时间。 param: string key

func (*ORM) Type

func (o *ORM) Type(typ string) *ORM

Type elastic search 版本 v7 以前有 type, v7之后 type 统一为 _doc

func (*ORM) Update

func (o *ORM) Update(data interface{}, where ...horm.Where) *ORM

Update 更新数据,参数可以是 struct / Map

func (*ORM) UpdateKV

func (o *ORM) UpdateKV(key string, value interface{}, kvs ...interface{}) *ORM

UpdateKV 更新字段,快速更新键值对 key = value

func (*ORM) Where

func (o *ORM) Where(where horm.Where) *ORM

Where 查询条件

func (*ORM) WithCoder

func (o *ORM) WithCoder(coder codec.Codec) *ORM

WithCoder 更换编解码器

func (*ORM) ZAdd

func (o *ORM) ZAdd(key string, args ...interface{}) *ORM

ZAdd redis.ZAdd 将成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素, 来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。 param: key string param: args ...interface{} 添加更多成员,需要按照 member, score, member, score 依次排列 注意:⚠️ 与 redis 命令不一样,需要按照 member, score, member, score, 格式传入

func (*ORM) ZCard

func (o *ORM) ZCard(key string) *ORM

ZCard 返回有序集成员个数 param: key string

func (*ORM) ZCount

func (o *ORM) ZCount(key string, min, max interface{}) *ORM

ZCount 计算有序集合中指定分数区间的成员数量 param: key string param: min interface{} param: max interface{}

func (*ORM) ZIncrBy

func (o *ORM) ZIncrBy(key string, member, incr interface{}) *ORM

ZIncrBy 对有序集合中指定成员的分数加上增量 increment,可以通过传递一个负数值 increment , 让分数减去相应的值,比如 ZINCRBY key -5 member , 就是让 member 的 score 值减去 5 。当 key 不存在,或分数不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。当 key 不是有序集类型时,返回一个错误。分数值可以是整数值或双精度浮点数。 param: key string param: member interface{} 任意类型数据 param: incr interface{} 增量值,可以为整数或双精度浮点

func (*ORM) ZPopMax

func (o *ORM) ZPopMax(key string, count ...int64) *ORM

ZPopMax 移除并弹出有序集合中分值最大的的 count 个元素 redis v5.0.0+ param: key string param: count ...int64 不设置count参数时,弹出一个元素

func (*ORM) ZPopMin

func (o *ORM) ZPopMin(key string, count ...int64) *ORM

ZPopMin 移除并弹出有序集合中分值最小的 count 个元素 redis v5.0.0+ param: key string param: count ...int64 不设置count参数时,弹出一个元素

func (*ORM) ZRange

func (o *ORM) ZRange(key string, start, stop int, withScore ...bool) *ORM

ZRange 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。 param: key string param: int start, stop 以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,你也可以使用负数下标, param: withScore 是否返回有序集的分数, true - 返回,false - 不返回,默认不返回,结果分开在两个数组存储,但是数组下标是一一对应的,比如 member[3] 成员的分数是 score[3] 以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*ORM) ZRangeByScore

func (o *ORM) ZRangeByScore(key string, min, max interface{}, withScores bool, limit ...int64) *ORM

ZRangeByScore 根据分数返回有序集中指定区间的成员,顺序从小到大 param: key string param: int min, max 分数的范围,类型必须为 int, float,但是 -inf +inf 表示负正无穷大 param: withScores 是否返回有序集的分数, true - 返回,false - 不返回,默认不返回,结果分开在两个数组存储,但是数组下标是一一对应的,比如 member[3] 成员的分数是 score[3] param: limit offset count 游标

func (*ORM) ZRank

func (o *ORM) ZRank(key string, member interface{}) *ORM

ZRank 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。 param: key string param: member interface{} 成员,任意类型

func (*ORM) ZRem

func (o *ORM) ZRem(key string, members ...interface{}) *ORM

ZRem 移除有序集中的一个或多个成员,不存在的成员将被忽略。 param: key string param: members ...interface{} 任意类型的多条数据

func (*ORM) ZRemRangeByRank

func (o *ORM) ZRemRangeByRank(key string, start, stop int) *ORM

ZRemRangeByRank 移除有序集中,指定排名(rank)区间内的所有成员。 param: key string param: start stop int 排名区间

func (*ORM) ZRemRangeByScore

func (o *ORM) ZRemRangeByScore(key string, min, max interface{}) *ORM

ZRemRangeByScore 移除有序集中,指定分数(score)区间内的所有成员。 param: key string param: interface{} min max 分数区间,类型为整数或者浮点数

func (*ORM) ZRevRange

func (o *ORM) ZRevRange(key string, start, stop int, withScore ...bool) *ORM

ZRevRange 返回有序集中指定区间的成员,其中成员的位置按分数值递减(从大到小)来排列。 param: key string param: start, stop 排名区间,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,你也可以使用负数下标, param: withScore 是否返回有序集的分数, true - 返回,false - 不返回,默认不返回,结果分开在两个数组存储,但是数组下标是一一对应的,比如 member[3] 成员的分数是 score[3] 以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

func (*ORM) ZRevRangeByScore

func (o *ORM) ZRevRangeByScore(key string, max, min interface{}, withScore bool, limit ...int64) *ORM

ZRevRangeByScore 返回有序集中指定分数区间内的所有的成员。有序集成员按分数值递减(从大到小)的次序排列。 param: key string param: max, min interface{} 分数区间,类型为整数或双精度浮点数,但是 -inf +inf 表示负正无穷大 param: withScore 是否返回有序集的分数, true - 返回,false - 不返回,默认不返回,结果分开在两个数组存储,但是数组下标是一一对应的,比如 member[3] 成员的分数是 score[3] param: limit offset count 游标

func (*ORM) ZRevRank

func (o *ORM) ZRevRank(key string, member interface{}) *ORM

ZRevRank 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从大到小)顺序排列。 param: key string param: member interface{} 成员,任意类型

func (*ORM) ZScore

func (o *ORM) ZScore(key string, member interface{}) *ORM

ZScore 返回有序集中,成员的分数值。 param: key string param: member interface{} 成员

Directories

Path Synopsis
redis/client
Package redis 封装第三方库redigo
Package redis 封装第三方库redigo
sql
Package obj 提供user数据库表在go程序的结构体映射,一般用于model层调用
Package obj 提供user数据库表在go程序的结构体映射,一般用于model层调用

Jump to

Keyboard shortcuts

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