Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menambah Cap Masa Created_at dan Updated_at secara Automatik pada Dokumen MongoDB Menggunakan Go?

Bagaimana untuk Menambah Cap Masa Created_at dan Updated_at secara Automatik pada Dokumen MongoDB Menggunakan Go?

Susan Sarandon
Lepaskan: 2024-11-26 08:29:08
asal
708 orang telah melayarinya

How to Automatically Add Created_at and Updated_at Timestamps to MongoDB Documents Using 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))
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan