Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengendalikan Sifat Dinamik dalam Google App Engine Datastore menggunakan Go?

Bagaimana untuk Mengendalikan Sifat Dinamik dalam Google App Engine Datastore menggunakan Go?

Barbara Streisand
Lepaskan: 2024-11-20 02:33:01
asal
808 orang telah melayarinya

How to Handle Dynamic Properties in Google App Engine Datastore using Go?

Cara Melaksanakan Sifat Dinamik dalam Go on Google App Engine Datastore

Google App Engine Datastore menyediakan penyelesaian storan data yang berkuasa untuk aplikasi web, menawarkan fleksibiliti dan kebolehskalaan. Kadangkala, terdapat keperluan untuk menyimpan data dengan sifat dinamik, bermakna sifat yang tidak diisytiharkan lebih awal daripada masa. Ini boleh dicapai dalam Go dengan memanfaatkan antara muka PropertyLoadSaver Google App Engine.

Antara Muka PropertyLoadSaver

Antara muka PropertyLoadSaver membolehkan anda menentukan cara sifat entiti harus dimuatkan dan disimpan ke stor data. Dengan melaksanakan antara muka ini, anda mendapat kawalan ke atas pengendalian harta dinamik.

Jenis Senarai Hartanah

Platform Enjin Aplikasi Go menyediakan jenis Senarai Hartanah yang melaksanakan antara muka PropertyLoadSaver. PropertyList pada asasnya ialah sepotong sifat, membolehkan anda menambah dan mengalih keluar sifat secara dinamik.

Contoh Penggunaan PropertyList

Untuk mencipta entiti dengan sifat dinamik menggunakan PropertyList, ikut langkah berikut:

import "google.golang.org/appengine/datastore"

// Create a PropertyList to hold the dynamic properties.
props := datastore.PropertyList{
    datastore.Property{Name: "time", Value: time.Now()},
    datastore.Property{Name: "email", Value: "[email protected]"},
}

// Create an incomplete key for the new entity.
k := datastore.NewIncompleteKey(ctx, "DynEntity", nil)

// Save the entity using the PropertyList.
key, err := datastore.Put(ctx, k, &props)
Salin selepas log masuk

Coretan kod ini mencipta entiti dengan jenis "DynEntity" dan dua sifat dinamik: "masa" dan "e-mel." PropertyList disimpan sebagai nilai untuk entiti.

Melaksanakan PropertyLoadSaver Anda Sendiri (Pilihan)

Anda juga boleh melaksanakan PropertyLoadSaver anda sendiri jika diperlukan. Berikut ialah contoh menggunakan jenis tersuai yang dipanggil "DynEnt":

import "google.golang.org/appengine/datastore"

type DynEnt map[string]interface{}

func (d *DynEnt) Load(props []datastore.Property) error {
    for _, p := range props {
        (*d)[p.Name] = p.Value
    }
    return nil
}

func (d *DynEnt) Save(props []datastore.Property, err error) error {
    for k, v := range *d {
        props = append(props, datastore.Property{Name: k, Value: v})
    }
    return err
}
Salin selepas log masuk

Jenis DynEnt ini kemudiannya boleh digunakan untuk menyimpan entiti dengan sifat dinamik, seperti ditunjukkan di bawah:

import "google.golang.org/appengine/datastore"

// Create a DynEnt with dynamic properties.
d := DynEnt{"email": "[email protected]", "time": time.Now()}

// Create an incomplete key for the new entity.
k := datastore.NewIncompleteKey(ctx, "DynEntity", nil)

// Save the entity using the DynEnt.
key, err := datastore.Put(ctx, k, &d)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Sifat Dinamik dalam Google App Engine Datastore menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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