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

即使不为空,Mgo 也会省略字段

即使不为空,Mgo 也会省略字段

Go
喵喵时光机 2021-07-28 17:46:43
我想知道是否有任何方法可以使 stuct 字段即使不为空也不会提交给 mgo。我发现这样做的唯一方法是使字段小写,这使得访问变得很痛苦。还有其他方法吗?这是一个示例,我在这里的目标是不将 SSN 提交到数据库中,但仍然使用大写字母。package mainimport (  "fmt"    "crypto/sha1"    "encoding/base64"    "labix.org/v2/mgo")type Person struct{  Name string  SSN string  HashedSSN string}func main() {  bob := Person{"Bob", "fake_ssn", ""}  hasher := sha1.New()  hasher.Write( []byte(bob.SSN))  sha := base64.URLEncoding.EncodeToString(hasher.Sum(nil))  bob.HashedSSN = sha  mgoSession, err := mgo.Dial("localhost:27017")  if err != nil {    fmt.Println("mongo_config#initMongoSessions : Could not dial to mgoSession", err)  } else {    mgoSession.DB("test").C("person").Insert(bob)  }}谢谢,
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

您可以通过使用字段标签来做到这一点,如下所示:


type T struct {

    Field string `bson:"-"`

}


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

添加回答

举报

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