Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menetapkan Nilai Tarikh Lalai untuk Medan Masa. Masa dalam Dokumen Mgo?
Dalam MongoDB, adalah mungkin untuk menetapkan nilai lalai untuk medan dokumen. Ini boleh berguna untuk mengisi medan secara automatik dengan nilai tertentu semasa pembuatan dokumen, seperti medan cap masa.
Dalam Mgo, pemacu Go untuk MongoDB, tiada cara langsung untuk menentukan nilai lalai untuk medan seperti dalam model JavaScript Mongoose. Pembangun sedang mencari penyelesaian untuk memasukkan nilai tarikh atau masa secara automatik ke dalam medan dokumen apabila dibuat.
Terdapat dua pendekatan utama untuk menetapkan nilai tarikh lalai dalam Mgo:
Pembina Fungsi:
Custom Marshaling:
Untuk pendekatan adat marshaling, berikut ialah contoh pelaksanaan:
import ( "context" "time" "github.com/globalsign/mgo/bson" ) type User struct { CreatedAt time.Time `json:"created_at" bson:"created_at"` } func (u *User) GetBSON() (interface{}, error) { if u.CreatedAt.IsZero() { u.CreatedAt = time.Now() } type my *User return my(u), nil } func main() { session, err := mgo.Dial("localhost:27017") if err != nil { panic(err) } defer session.Close() c := session.DB("mydb").C("users") // Create a new user with a default CreatedAt timestamp user := User{} err = c.Insert(user) if err != nil { panic(err) } }
Dalam contoh ini, apabila dokumen Pengguna baharu dimasukkan ke dalam pangkalan data, medan CreatedAt akan ditetapkan secara automatik kepada masa semasa. Ini dicapai dengan mengatasi kaedah GetBSON() untuk menyediakan nilai struct yang diubah suai apabila pemacu pangkalan data cuba untuk menyerikan objek untuk dimasukkan.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Nilai Tarikh Lalai untuk Medan Masa. Masa dalam Dokumen Mgo?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!