mgen
golang mgo 代码自动生成器, 生成对 mongodb 的 CRUD 操作代码
安装
使用
go get golang.org/x/tools/cmd/goimports
goimports
//go:generate goimports -wgo generate -x
interface command
NAME:
flag interface - create model interface go file
USAGE:
flag interface [command options] [arguments...]
OPTIONS:
--package value, -p value set interface file package name
--help, -h show help (default: false)
model.mg.go
Host
mgo command
编写 配置文件, 然后使用命令生成. 可以参照 example
NAME:
flag mgo - generate golang code
USAGE:
flag mgo [command options] [arguments...]
OPTIONS:
--config-file value, -c value set the config file path
--help, -h show help (default: false)
根据所传入的配置文件生成对应的 CRUD package.
mgen mgo -c xxx.yaml
xxx.mg.go
配置文件编写
简单的用法
执行后生成的Go文件: base.mg.go
collectionNameCRUD
- NewUser() *User
- (user *User) Insert() error
- UpdateUserByID(id string, user *User) error
- UpdateUser(selector interface{}, user *User) error
- UpdateUserAll(selector interface{}, user *User) (*mgo.ChangeInfo, error)
- FindUserByID(id string) (*User, error)
- FindUserByQuery(query interface{}) (*User, error)
- FindAllUserByQuery(query interface{}) ([]*User, error)
- ExistUserByID(id string) (bool, error)
- ExistUserByQuery(query interface{}) (bool, error)
- DeleteUserByID(id string) error
进阶用法
执行后生成的Go文件: advanced.mgo.go
unique
valid
感谢
Package of validators and sanitizers for strings, numerics, slices and structs https://github.com/asaskevich/govalidator