Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menambah Cap Masa Created_at dan Updated_at secara Automatik pada Dokumen MongoDB Menggunakan Go?
Menambah Medan Created_at dan Updated_at Automatik dalam Struktur Golang untuk MongoDB
Memasukkan data ke dalam MongoDB dengan struct Go memerlukan pengendalian populasi automatik create_at dan medan updated_at, ciri yang tidak disokong oleh MongoDB pelayan.
Untuk menangani perkara ini, pertimbangkan untuk melaksanakan marshaler tersuai dengan melaksanakan antara muka bson.Marshaler. Fungsi MarshalBSON() akan digunakan apabila mengekalkan nilai jenis Pengguna.
Berikut ialah coretan kod yang menunjukkan pelaksanaan:
type User struct { ID primitive.ObjectID `bson:"_id,omitempty"` CreatedAt time.Time `bson:"created_at"` UpdatedAt time.Time `bson:"updated_at"` Name string `bson:"name"` } func (u *User) MarshalBSON() ([]byte, error) { if u.CreatedAt.IsZero() { u.CreatedAt = time.Now() } u.UpdatedAt = time.Now() type my User return bson.Marshal((*my)(u)) }
Perhatikan bahawa kaedah MarshalBSON() menggunakan penuding penerima, jadi anda perlu menggunakan penuding kepada tika Pengguna.
Contoh penggunaan:
user := &User{Name: "username"} c := client.Database("db").Collection("collection") if _, err := c.InsertOne(context.Background(), user); err != nil { // handle error }
Dengan menggunakan teknik ini, anda boleh mengemas kini medan create_at dan updated_at secara automatik apabila memasukkan atau mengemas kini dokumen MongoDB melalui struct Go.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Cap Masa Created_at dan Updated_at secara Automatik pada Dokumen MongoDB Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!