2014-04-03 10 views
6

Ich fragte mich, ob es eine Möglichkeit gibt, ein Stuct-Feld zu haben, das nicht an mgo gebunden wird, auch wenn es nicht leer ist.Mgo Feld weglassen, auch wenn nicht leer

Die einzige Möglichkeit, die ich gefunden habe, ist, das Feld in Kleinbuchstaben zu schreiben, was den Zugang erschwert. Gibt es eine andere Art und Weise?

Dies ist ein Beispiel, und mein Ziel hier ist, die SSN nicht in die Datenbank zu committen, aber immer noch in Großbuchstaben.

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) 
    } 
} 

Danke,

Antwort

15

Sie können mithilfe des Feld Tag tun, wie folgt:

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

Süß, Sie sind sehr hilfreich Gustavo – Gary

Verwandte Themen