在 mgo 中定义 MongoDB 模式/集合

我想使用 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 中完成一样?


繁华开满天机
浏览 162回答 1
1回答

炎炎设计

mgo 不是 ORM 或验证工具。mgo 只是 MongoDB 的一个接口。自己做验证也不错。type CompanyType intconst (&nbsp; CompanyA CompanyType = iota // this is the default&nbsp; CompanyB CompanyType&nbsp; CompanyC CompanyType)type Company struct {&nbsp; Name string&nbsp; CompanyType string}func (c Company) Valid() bool {&nbsp; if c.Name == "" {&nbsp; &nbsp; return false&nbsp; }&nbsp; // If it's a user input, you'd want to validate CompanyType's underlying&nbsp; // integer isn't out of the enum's range.&nbsp; if c.CompanyType < CompanyA || c.CompanyType > CompanyB {&nbsp; &nbsp; return false&nbsp; }&nbsp; return true}检查这个出了更多关于围棋枚举。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go