Heim > Backend-Entwicklung > Golang > Wie kann ich dynamische Entitäten im Google App Engine-Datenspeicher von Go erstellen?

Wie kann ich dynamische Entitäten im Google App Engine-Datenspeicher von Go erstellen?

Mary-Kate Olsen
Freigeben: 2024-11-25 15:29:11
Original
761 Leute haben es durchsucht

How Can I Create Dynamic Entities in Go's Google App Engine Datastore?

Erzielen dynamischer Eigenschaften im Google App Engine-Datenspeicher von Go

In Pythons App Engine ermöglicht das Expando-Modell die dynamische Zuweisung von Attributen zu Entitäten ohne vorherige Deklaration. In diesem Artikel wird untersucht, wie Sie mit dem Google App Engine Datastore eine ähnliche Funktionalität in Go erreichen.

Die PropertyLoadSaver-Schnittstelle

Der Schlüssel zum Definieren dynamischer Entitäten in Go ist die PropertyLoadSaver-Schnittstelle. Durch die Implementierung dieser Schnittstelle erhalten Sie die Möglichkeit, die Eigenschaften einer Entität dynamisch und zeitsparend zu erstellen.

PropertyList von der Go App Engine-Plattform verwenden

Die Go App Engine-Plattform bietet den PropertyList-Typ, der ist eine Liste von Property-Instanzen und implementiert die PropertyLoadSaver-Schnittstelle. Durch die Nutzung von PropertyList können Sie dynamische Entitäten erstellen, ohne die Schnittstelle selbst zu implementieren.

props := datastore.PropertyList{
    {Name: "time", Value: time.Now()},
    {Name: "email", Value: "johndoe@example.com"},
}
Nach dem Login kopieren

Um diese Liste als Entität zu speichern, können Sie Folgendes verwenden:

key, err := datastore.Put(c, k, &props)
Nach dem Login kopieren

Implementieren von PropertyLoadSaver für benutzerdefinierte Typen

Für weitere Flexibilität können Sie die PropertyLoadSaver-Schnittstelle für Ihre eigenen benutzerdefinierten Typen implementieren, z Karten.

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) {
    for k, v := range *d {
        props = append(props, datastore.Property{Name: k, Value: v})
    }
    return
}
Nach dem Login kopieren

Mit dieser benutzerdefinierten Implementierung können Sie dynamische Entitäten jetzt problemlos laden und speichern:

d := DynEnt{"email": "johndoe@example.com", "time": time.Now()}
key, err := datastore.Put(c, k, &d)
Nach dem Login kopieren

Dieser Ansatz gewährt Ihnen die volle Kontrolle über die Eigenschaftsdefinitionen Ihrer dynamischen Entitäten .

Das obige ist der detaillierte Inhalt vonWie kann ich dynamische Entitäten im Google App Engine-Datenspeicher von Go erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage