Documentation
¶
Index ¶
- Variables
- type BulkCreateDto
- type BulkDeleteDto
- type Controller
- func (x *Controller) BulkCreate(ctx context.Context, c *app.RequestContext)
- func (x *Controller) BulkDelete(ctx context.Context, c *app.RequestContext)
- func (x *Controller) Create(ctx context.Context, c *app.RequestContext)
- func (x *Controller) Delete(ctx context.Context, c *app.RequestContext)
- func (x *Controller) Find(ctx context.Context, c *app.RequestContext)
- func (x *Controller) FindById(ctx context.Context, c *app.RequestContext)
- func (x *Controller) FindOne(ctx context.Context, c *app.RequestContext)
- func (x *Controller) Replace(ctx context.Context, c *app.RequestContext)
- func (x *Controller) Size(ctx context.Context, c *app.RequestContext)
- func (x *Controller) Sort(ctx context.Context, c *app.RequestContext)
- func (x *Controller) Update(ctx context.Context, c *app.RequestContext)
- func (x *Controller) UpdateById(ctx context.Context, c *app.RequestContext)
- type CreateDto
- type DSL
- type DeleteDto
- type FindByIdDto
- type FindDto
- type FindOneDto
- type M
- type Option
- type PublishDto
- type ReplaceDto
- type Service
- func (x *Service) BulkCreate(ctx context.Context, name string, docs []interface{}) (_ interface{}, err error)
- func (x *Service) BulkDelete(ctx context.Context, name string, filter M) (_ interface{}, err error)
- func (x *Service) Create(ctx context.Context, name string, doc M) (_ interface{}, err error)
- func (x *Service) Delete(ctx context.Context, name string, id primitive.ObjectID) (_ interface{}, err error)
- func (x *Service) Find(ctx context.Context, name string, filter M, option *options.FindOptions) (data []M, err error)
- func (x *Service) FindOne(ctx context.Context, name string, filter M, option *options.FindOneOptions) (data M, err error)
- func (x *Service) Load(ctx context.Context) (err error)
- func (x *Service) Projection(name string, keys []string) (result bson.M)
- func (x *Service) Publish(ctx context.Context, name string, dto PublishDto) (err error)
- func (x *Service) Replace(ctx context.Context, name string, id primitive.ObjectID, doc M) (_ interface{}, err error)
- func (x *Service) Size(ctx context.Context, name string, filter M) (_ int64, err error)
- func (x *Service) Sort(ctx context.Context, name string, ids []primitive.ObjectID) (_ interface{}, err error)
- func (x *Service) Transform(data M, format M) (err error)
- func (x *Service) Update(ctx context.Context, name string, filter M, update M) (_ interface{}, err error)
- func (x *Service) UpdateById(ctx context.Context, name string, id primitive.ObjectID, update M) (_ interface{}, err error)
- type SizeDto
- type SortDto
- type UpdateByIdDto
- type UpdateDto
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type BulkCreateDto ¶
type BulkDeleteDto ¶
type Controller ¶
type Controller struct {
DSLService *Service
}
func (*Controller) BulkCreate ¶
func (x *Controller) BulkCreate(ctx context.Context, c *app.RequestContext)
BulkCreate 批量新增文档 @router /:collection/bulk-create [POST]
func (*Controller) BulkDelete ¶
func (x *Controller) BulkDelete(ctx context.Context, c *app.RequestContext)
BulkDelete 批量删除匹配文档 @router /:collection/bulk-delete [POST]
func (*Controller) Create ¶
func (x *Controller) Create(ctx context.Context, c *app.RequestContext)
Create 新增文档 @router /:collection [POST]
func (*Controller) Delete ¶
func (x *Controller) Delete(ctx context.Context, c *app.RequestContext)
Delete 删除指定 ID 的文档 @router /:collection/:id [DELETE]
func (*Controller) Find ¶
func (x *Controller) Find(ctx context.Context, c *app.RequestContext)
Find 获取匹配文档 @router /:collection [GET]
func (*Controller) FindById ¶
func (x *Controller) FindById(ctx context.Context, c *app.RequestContext)
FindById 获取指定 ID 的文档 @router /:collection/:id [GET]
func (*Controller) FindOne ¶
func (x *Controller) FindOne(ctx context.Context, c *app.RequestContext)
FindOne 获取单个文档 @router /:collection/_one [GET]
func (*Controller) Replace ¶
func (x *Controller) Replace(ctx context.Context, c *app.RequestContext)
Replace 替换指定 ID 的文档 @router /:collection/:id [PUT]
func (*Controller) Size ¶
func (x *Controller) Size(ctx context.Context, c *app.RequestContext)
Size 获取文档总数 @router /:collection/_size [GET]
func (*Controller) Sort ¶
func (x *Controller) Sort(ctx context.Context, c *app.RequestContext)
Sort 排序文档 @router /:collection/sort [POST]
func (*Controller) Update ¶
func (x *Controller) Update(ctx context.Context, c *app.RequestContext)
Update 局部更新匹配文档 @router /:collection [PATCH]
func (*Controller) UpdateById ¶
func (x *Controller) UpdateById(ctx context.Context, c *app.RequestContext)
UpdateById 局部更新指定 ID 的文档 @router /:collection/:id [PATCH]
type DSL ¶
type DSL struct {
Namespace string
Db *mongo.Database
DynamicValues *kv.DynamicValues
Js nats.JetStreamContext
}
type FindByIdDto ¶
type FindDto ¶
type FindDto struct {
// 集合命名
Collection string `path:"collection,required" vd:"regexp('^[a-z_]+$');msg:'集合名称必须是小写字母与下划线'"`
// 分页大小(默认 100 自定义必须在1~1000之间 )
Pagesize int64 `header:"x-pagesize" vd:"$>=0 && $<=1000;msg:'分页数量必须在 1~1000 之间'"`
// 分页页码
Page int64 `header:"x-page" vd:"$>=0;msg:'页码必须大于 0'"`
// 筛选条件
Filter M `query:"filter"`
// Query.filter 格式转换
Format M `query:"format"`
// 排序规则
Sort []string `query:"sort" vd:"range($,regexp('^[a-z_]+:(-1|1)$',#v)));msg:'排序规则不规范'"`
// 投影规则
Keys []string `query:"keys" vd:"range($,regexp('^[a-z_]+$',#v));msg:'投影规则不规范'"`
}
type FindOneDto ¶
type FindOneDto struct {
// 集合命名
Collection string `path:"collection,required" vd:"regexp('^[a-z_]+$');msg:'集合名称必须是小写字母与下划线'"`
// 筛选条件
Filter M `query:"filter,required" vd:"len($)>0;msg:'筛选条件不能为空'"`
// Query.filter 格式转换
Format M `query:"format"`
// 投影规则
Keys []string `query:"keys" vd:"range($,regexp('^[a-z_]+$',#v));msg:'投影规则不规范'"`
}
type Option ¶
type Option func(x *DSL)
func SetDatabase ¶
func SetDynamicValues ¶
func SetDynamicValues(v *kv.DynamicValues) Option
func SetJetStream ¶
func SetJetStream(v nats.JetStreamContext) Option
func SetNamespace ¶
type PublishDto ¶
type ReplaceDto ¶
type ReplaceDto struct {
// 集合命名
Collection string `path:"collection,required" vd:"regexp('^[a-z_]+$');msg:'集合名称必须是小写字母与下划线'"`
// 文档 ID
Id string `path:"id,required" vd:"mongoId($);msg:'文档 ID 不规范'"`
// 文档数据
Data M `json:"data,required" vd:"len($)>0;msg:'文档数据不能为空'"`
// Body.data 格式转换
Format M `json:"format"`
}
type Service ¶
type Service struct {
*DSL
}
func (*Service) BulkCreate ¶
func (x *Service) BulkCreate(ctx context.Context, name string, docs []interface{}) (_ interface{}, err error)
BulkCreate 批量新增文档
func (*Service) BulkDelete ¶
BulkDelete 批量删除匹配文档
func (*Service) Delete ¶
func (x *Service) Delete(ctx context.Context, name string, id primitive.ObjectID) (_ interface{}, err error)
Delete 删除指定 ID 的文档
func (*Service) Find ¶
func (x *Service) Find(ctx context.Context, name string, filter M, option *options.FindOptions) (data []M, err error)
Find 获取匹配文档
func (*Service) FindOne ¶
func (x *Service) FindOne(ctx context.Context, name string, filter M, option *options.FindOneOptions) (data M, err error)
FindOne 获取单个文档
func (*Service) Projection ¶
Projection 字段投影
func (*Service) Replace ¶
func (x *Service) Replace(ctx context.Context, name string, id primitive.ObjectID, doc M) (_ interface{}, err error)
Replace 替换指定 ID 的文档
func (*Service) Sort ¶
func (x *Service) Sort(ctx context.Context, name string, ids []primitive.ObjectID) (_ interface{}, err error)
Sort 排序文档
type UpdateByIdDto ¶
type UpdateByIdDto struct {
// 集合命名
Collection string `path:"collection,required" vd:"regexp('^[a-z_]+$');msg:'集合名称必须是小写字母与下划线'"`
// 文档 ID
Id string `path:"id,required" vd:"mongoId($);msg:'文档 ID 不规范'"`
// 更新操作
Data M `json:"data,required" vd:"len($)>0;msg:'更新操作不能为空'"`
// Body.data 格式转换
Format M `json:"format"`
}
type UpdateDto ¶
type UpdateDto struct {
// 集合命名
Collection string `path:"collection" vd:"regexp('^[a-z_]+$');msg:'集合名称必须是小写字母与下划线'"`
// 筛选条件
Filter M `query:"filter,required" vd:"len($)>0;msg:'筛选条件不能为空'"`
// Query.filter 格式转换
FFormat M `query:"format"`
// 更新操作
Data M `json:"data,required" vd:"len($)>0;msg:'更新操作不能为空'"`
// Body.data 格式转换
DFormat M `json:"format"`
}