El almacén de datos de Google App Engine proporciona una potente solución de almacenamiento de datos para aplicaciones web, ofreciendo flexibilidad y escalabilidad. A veces, es necesario almacenar datos con propiedades dinámicas, lo que significa propiedades que no se declaran con anticipación. Esto se puede lograr en GO aprovechando la interfaz Propertyload de Google App Motor. Al implementar esta interfaz, obtiene control sobre el manejo de la propiedad dinámica.
La plataforma GO APP Engine proporciona un tipo de propiedad de propiedad que implementa la interfaz PropertyLoadSaver. Propertylist es esencialmente una porción de propiedades, lo que le permite agregar y eliminar las propiedades dinámicamente.
para crear una entidad con propiedades dinámicas usando Propertylist, siga estos pasos:
import "Google.golang.org/appengine/datastore", // Cree un propertylist para mantener las propiedades dinámicas. Props: = DataStore.Propertylist { dataStore.Property {nombre: "Time", Value: Time.Now ()}, datastore.property {nombre: "correo electrónico", valor: "[correo electrónico protegido]"}, } // Crear una clave incompleta para la nueva entidad. K: = DataStore.newincompleteKey (CTX, "Dynentity", nil) // Guardar la entidad usando el Propertylist. Key, err: = DataStore.put (ctx, k, & props)implementando su propia propiedadLoadSaver (opcional)
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)También puede implementar su propia propiedad LoadSaver si es necesario. Aquí hay un ejemplo que usa un tipo personalizado llamado "Dynent":
import "google.golang.org/appengine/datastore" Escriba la interfaz de mapa de dinente [cadena] {} Func (D *Dynent) Load (Props [] DataStore.Property) Error { para _, p: = accesorios de rango { (*d) [p.name] = P.Value } regresar nulo } Func (D *Dynent) Save (props [] dataStore.property, error err) error { para k, v: = rango *d { props = append (props, dataStore.Property {nombre: k, valor: v}) } devolver err }
import "google.golang.org/appengine/datastore" // Crear un dinente con propiedades dinámicas. D: = Dynent {"correo electrónico": "[Correo electrónico protegido]", "Time": Time.Now ()} // Crear una clave incompleta para la nueva entidad. K: = DataStore.newincompleteKey (CTX, "Dynentity", nil) // Guardar la entidad usando el dinente. clave, err: = dataStore.put (ctx, k, & d)
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3