gpt4 book ai didi

go - 在 mgo 中定义 MongoDB 架构/集合

转载 作者:数据小太阳 更新时间:2023-10-29 03:16:03 25 4
gpt4 key购买 nike

我想使用 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 中那样做?

最佳答案

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

自己一个人做验证也不错。

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
}

检查 this了解更多关于 Go 中枚举的信息。

关于go - 在 mgo 中定义 MongoDB 架构/集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35456076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com