Documentation
¶
Overview ¶
update 包提供MongoDB更新操作的相关功能,包括更新条件构建和字段选择
Index ¶
- Constants
- type Selector
- type SelectorType
- type SetOnInsert
- type Update
- func (u Update) Any(t, k string, v interface{})
- func (u Update) Convert(t string, i interface{}) error
- func (u Update) Get(opt string, k string) (v any, ok bool)
- func (u Update) Has(opt string, filed string) bool
- func (u Update) Inc(k string, v interface{})
- func (u Update) Max(k string, v interface{})
- func (u Update) Min(k string, v interface{})
- func (u Update) Pop(k string, v interface{})
- func (u Update) Projection() bson.M
- func (u Update) Pull(k string, v interface{})
- func (u Update) Push(k string, v interface{})
- func (u Update) Remove(opt string, k string)
- func (u Update) Save(vs map[string]any)
- func (u Update) Set(k string, v interface{})
- func (u Update) SetOnInsert(k string, v interface{})
- func (u Update) String() string
- func (u Update) Transform(sch *schema.Schema) Update
- func (u Update) Unset(k string)
Constants ¶
const ( UpdateTypeSet = "$set" // 设置字段值 UpdateTypeInc = "$inc" // 增加/减少字段值 UpdateTypeUnset = "$unset" // 删除字段 UpdateTypeSetOnInsert = "$setOnInsert" // 仅在插入时设置字段值 )
更新操作类型常量定义
const MongodbFieldSplit = "."
MongodbFieldSplit MongoDB字段分隔符
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Selector ¶ added in v0.0.3
type Selector struct {
// contains filtered or unexported fields
}
Selector 字段选择器结构体 用于在创建、更新和查询操作中指定要包含或排除的字段
func (*Selector) Has ¶ added in v0.0.4
Has 检查指定字段是否被选择 参数 key: 字段名(结构体字段名或数据库字段名) 返回值: true表示字段被选择,false表示字段被排除
func (*Selector) Omit ¶ added in v0.0.3
Omit 设置要排除的字段(排除模式) 参数 columns: 要排除的字段名列表 返回值: true表示设置成功,false表示当前选择器类型不兼容(已处于选择模式) 注意:排除模式和选择模式不能同时使用
func (*Selector) Projection ¶ added in v0.0.3
Projection 获取字段投影映射,支持模型字段名到数据库字段名的映射 参数 sch: 可选的模型schema,用于字段名映射(结构体字段名到数据库字段名) 返回值: 字段投影映射,键为数据库字段名,值为是否选择 注意:在FindOneAndUpdate等操作中使用时,需要将排除模式转换为选择模式
type SelectorType ¶ added in v0.0.3
type SelectorType int8
SelectorType 字段选择器类型枚举
const ( SelectorTypeNone SelectorType = iota // 无选择(默认) SelectorTypeOmit SelectorType = iota // 排除模式:排除指定字段 SelectorTypeSelect SelectorType = iota // 选择模式:仅选择指定字段 )
type SetOnInsert ¶
type Update ¶
func Build ¶
func Build(i any, sch *schema.Schema, filter *Selector, includeZeroValue bool) (update Update, upsert bool, err error)
Build 将各种类型(map、bson.M、Struct)转换为Update 参数 i: 要转换的值,可以是map、bson.M、Struct或Update类型 参数 sch: 模型schema,用于字段名映射 参数 filter: 字段选择器,用于指定要更新的字段 参数 includeZeroValue: 是否包含零值字段 返回值: Update实例、是否需要upsert、可能的错误
func BuildWithStmt ¶ added in v1.2.2
BuildWithStmt 使用语句构建Update 参数 stmt: 语句接口,提供构建Update所需的信息 返回值: Update实例、是否需要upsert、可能的错误
func NewFromMap ¶ added in v1.1.0
NewFromMap 从map创建Update实例 参数 v: 包含字段名和值的map 返回值: 设置了字段的Update实例
func (Update) Projection ¶
Projection 生成投影 返回值: 包含更新字段的投影(仅包含$set和$inc中的字段)
func (Update) SetOnInsert ¶ added in v1.2.3
SetOnInsert 仅在插入时设置字段值($setOnInsert操作) 参数 k: 字段名 参数 v: 字段值