2014-04-03 28 views
6

Boş değil olsa bile mgo almaya alamayan bir davranış alanına sahip olmanın bir yolu olup olmadığını merak ediyordum.Mgo atma alanı bile boş değilken bile

Bunu yapmamı sağlamanın tek yolu, alanı küçük harfli yapmaktır; Başka bir yolu var mı?

Bu bir örnektir ve buradaki amacım SSN'yi veritabanına dahil etmemek, ancak yine de büyük harf içermesidir.

package main 

import (
    "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) 
    } 
} 

sayesinde

cevap

15

aşağıdaki gibi saha etiketi kullanarak bunu yapabilir:

type T struct { 
    Field string `bson:"-"` 
} 
+0

Ne hoş Gustavo çok yararlı – Gary

İlgili konular