为了账号安全,请及时绑定邮箱和手机立即绑定

在 mgo 中定义 MongoDB 模式/集合

在 mgo 中定义 MongoDB 模式/集合

Go
繁华开满天机 2021-12-13 18:52:45
我想使用 mgo 创建/保存 MongoDB 集合。但我想更广泛地定义它(例如,提到一个属性是强制性的,另一个是枚举类型并具有默认值)。我已经定义了这样的结构,但不知道如何描述它的约束。type Company struct {    Name        string `json:"name" bson:"name"` // --> I WANT THIS TO BE MANDATORY    CompanyType string `json:"companyType" bson:"companyType"` // -->I WANT THIS TO BE AN ENUM}这是否可以在 mgo 中完成,就像我们如何在 MongooseJS 中完成一样?
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

mgo 不是 ORM 或验证工具。mgo 只是 MongoDB 的一个接口。


自己做验证也不错。


type CompanyType int


const (

  CompanyA CompanyType = iota // this is the default

  CompanyB CompanyType

  CompanyC CompanyType

)


type Company struct {

  Name string

  CompanyType string

}


func (c Company) Valid() bool {

  if c.Name == "" {

    return false

  }

  // If it's a user input, you'd want to validate CompanyType's underlying

  // integer isn't out of the enum's range.

  if c.CompanyType < CompanyA || c.CompanyType > CompanyB {

    return false

  }

  return true

}

检查这个出了更多关于围棋枚举。


查看完整回答
反对 回复 2021-12-13
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信