builder

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func And

func And(conditions ...any) any

And 逻辑与

func Eq

func Eq(key string, value any) any

Eq 等于条件

func Gt

func Gt(key string, value any) any

Gt 大于条件

func Gte

func Gte(key string, value any) any

Gte 大于等于条件

func Id

func Id(id any) any

Id ID 条件

func In

func In[T any](key string, value ...T) any

In 包含条件

func Like

func Like(key string, value string, mode MatchMode) any

Like 模糊匹配条件

func Lt

func Lt(key string, value any) any

Lt 小于条件

func Lte

func Lte(key string, value any) any

Lte 小于等于条件

func Ne

func Ne(key string, value any) any

Ne 不等于条件

func Nin

func Nin[T any](key string, value ...T) any

Nin 不包含条件

func Or

func Or(conditions ...any) any

Or 逻辑或

func SetQueryBuilder

func SetQueryBuilder(builderType BuilderType)

SetQueryBuilder 设置默认查询构建器类型

func ToAnySlice

func ToAnySlice[T any](data []T) []any

Types

type BuilderType

type BuilderType int

BuilderType 构建器类型

const (
	BuilderTypeMongo BuilderType = iota
	BuilderTypeGorm
)

type Condition

type Condition struct {
	Op    Op
	Value any
}

Condition 单个条件

type GormQueryBuilder

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

GormQueryBuilder GORM 查询构建器

func NewGormQueryBuilder

func NewGormQueryBuilder() *GormQueryBuilder

NewGormQueryBuilder 创建 GORM 查询构建器

func (*GormQueryBuilder) And

func (b *GormQueryBuilder) And(conditions ...any) QBuilder

And 逻辑与

func (*GormQueryBuilder) Build

func (b *GormQueryBuilder) Build() any

Build 构建 GORM 查询条件,返回 clause.Expression

func (*GormQueryBuilder) Eq

func (b *GormQueryBuilder) Eq(key string, value any) QBuilder

Eq 等于条件

func (*GormQueryBuilder) Gt

func (b *GormQueryBuilder) Gt(key string, value any) QBuilder

Gt 大于条件

func (*GormQueryBuilder) Gte

func (b *GormQueryBuilder) Gte(key string, value any) QBuilder

Gte 大于等于条件

func (*GormQueryBuilder) Id

func (b *GormQueryBuilder) Id(id any) QBuilder

Id 设置 ID 条件

func (*GormQueryBuilder) In

func (b *GormQueryBuilder) In(key string, value ...any) QBuilder

In 包含条件

func (*GormQueryBuilder) Like

func (b *GormQueryBuilder) Like(key string, value string, mode MatchMode) QBuilder

Like 模糊匹配条件

func (*GormQueryBuilder) Lt

func (b *GormQueryBuilder) Lt(key string, value any) QBuilder

Lt 小于条件

func (*GormQueryBuilder) Lte

func (b *GormQueryBuilder) Lte(key string, value any) QBuilder

Lte 小于等于条件

func (*GormQueryBuilder) Ne

func (b *GormQueryBuilder) Ne(key string, value any) QBuilder

Ne 不等于条件

func (*GormQueryBuilder) Nin

func (b *GormQueryBuilder) Nin(key string, value ...any) QBuilder

Nin 不包含条件

func (*GormQueryBuilder) Or

func (b *GormQueryBuilder) Or(conditions ...any) QBuilder

Or 逻辑或

type IBuilder

type IBuilder interface {
	Build() any
}

IBuilder 通用构建器接口

type LogicalGroup

type LogicalGroup struct {
	Type       string // "and" or "or"
	Conditions []any
}

LogicalGroup 逻辑组(And/Or)

type MatchMode

type MatchMode int

MatchMode 模糊匹配模式

const (
	MatchContains   MatchMode = iota // 包含 %value%
	MatchStartsWith                  // 前缀 value%
	MatchEndsWith                    // 后缀 %value
)

type MongoQueryBuilder

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

MongoQueryBuilder MongoDB 查询构建器

func NewMongoQueryBuilder

func NewMongoQueryBuilder() *MongoQueryBuilder

NewMongoQueryBuilder 创建 MongoDB 查询构建器

func (*MongoQueryBuilder) And

func (b *MongoQueryBuilder) And(conditions ...any) QBuilder

And 逻辑与

func (*MongoQueryBuilder) Build

func (b *MongoQueryBuilder) Build() any

Build 构建 MongoDB 查询条件,返回 bson.M

func (*MongoQueryBuilder) Eq

func (b *MongoQueryBuilder) Eq(key string, value any) QBuilder

Eq 等于条件

func (*MongoQueryBuilder) Gt

func (b *MongoQueryBuilder) Gt(key string, value any) QBuilder

Gt 大于条件

func (*MongoQueryBuilder) Gte

func (b *MongoQueryBuilder) Gte(key string, value any) QBuilder

Gte 大于等于条件

func (*MongoQueryBuilder) Id

func (b *MongoQueryBuilder) Id(id any) QBuilder

Id 设置 ID 条件

func (*MongoQueryBuilder) In

func (b *MongoQueryBuilder) In(key string, value ...any) QBuilder

In 包含条件

func (*MongoQueryBuilder) Like

func (b *MongoQueryBuilder) Like(key string, value string, mode MatchMode) QBuilder

Like 模糊匹配条件

func (*MongoQueryBuilder) Lt

func (b *MongoQueryBuilder) Lt(key string, value any) QBuilder

Lt 小于条件

func (*MongoQueryBuilder) Lte

func (b *MongoQueryBuilder) Lte(key string, value any) QBuilder

Lte 小于等于条件

func (*MongoQueryBuilder) Ne

func (b *MongoQueryBuilder) Ne(key string, value any) QBuilder

Ne 不等于条件

func (*MongoQueryBuilder) Nin

func (b *MongoQueryBuilder) Nin(key string, value ...any) QBuilder

Nin 不包含条件

func (*MongoQueryBuilder) Or

func (b *MongoQueryBuilder) Or(conditions ...any) QBuilder

Or 逻辑或

type Op

type Op string

Op 操作符类型

const (
	OpEq   Op = "eq"
	OpNe   Op = "ne"
	OpGt   Op = "gt"
	OpGte  Op = "gte"
	OpLt   Op = "lt"
	OpLte  Op = "lte"
	OpIn   Op = "in"
	OpNin  Op = "nin"
	OpLike Op = "like"
)

type QBuilder

type QBuilder interface {
	IBuilder
	Id(id any) QBuilder
	Eq(key string, value any) QBuilder
	Ne(key string, value any) QBuilder
	Gt(key string, value any) QBuilder
	Gte(key string, value any) QBuilder
	Lt(key string, value any) QBuilder
	Lte(key string, value any) QBuilder
	In(key string, value ...any) QBuilder
	Nin(key string, value ...any) QBuilder
	Like(key string, value string, mode MatchMode) QBuilder
	And(conditions ...any) QBuilder
	Or(conditions ...any) QBuilder
}

QBuilder 查询构建器接口

func NewQueryBuilder

func NewQueryBuilder() QBuilder

NewQueryBuilder 创建查询构建器

type QueryConditions

type QueryConditions struct {
	// Fields 存储字段条件,key 为字段名,value 为该字段的所有条件
	Fields map[string][]Condition
	// LogicalGroups 存储逻辑组
	LogicalGroups []LogicalGroup
}

QueryConditions 查询条件集合,作为中间结构

func NewQueryConditions

func NewQueryConditions() *QueryConditions

NewQueryConditions 创建新的查询条件集合

func (*QueryConditions) AddCondition

func (qc *QueryConditions) AddCondition(key string, op Op, value any)

AddCondition 添加字段条件

func (*QueryConditions) AddLogicalGroup

func (qc *QueryConditions) AddLogicalGroup(groupType string, conditions []any)

AddLogicalGroup 添加逻辑组

Jump to

Keyboard shortcuts

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