es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Invalido el tipo de valor del Datastore para una propiedad con nombre.

Estoy intentando guardar un array int64 en Datastore usando una PropertyList en GoLang.

Aquí está la Property en la PropertyList:
Property in list

Sin embargo, obtengo este error:
Error message

Sé que se pueden almacenar arrays en Datastore, especialmente de tipos primitivos. Así que no estoy seguro de lo que estoy haciendo mal al intentar insertarlo a través de PropertyList. Todas mis otras propiedades se guardan correctamente (son primitivos individuales). El array es el que está causando este problema.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando guardar un array de int64 en Datastore usando una PropertyList en GoLang, pero te encuentras con un error. El mensaje de error sugiere que el tipo de array no es compatible con Datastore.

    Para resolver este problema, puedes intentar convertir el array de int64 en una slice de interface{} antes de guardarlo. De esta manera, Datastore será capaz de almacenarlo como una lista de propiedades. Aquí tienes un ejemplo de cómo hacer esto:

    // Convertir el array de int64 en una slice de interface{}
    values := make([]interface{}, len(intArray))
    for i, v := range intArray {
        values[i] = v
    }
    
    // Crear una nueva PropertyList y asignar los valores
    list := datastore.PropertyList(values)
    
    // Guardar la PropertyList en Datastore
    key := datastore.NameKey("MiEntidad", "MiLlave", nil)
    entidad := &MiEntidad{MiArray: list}
    if _, err := client.Put(ctx, key, entidad); err != nil {
        log.Fatalf("Error al guardar la entidad: %v", err)
    }
    

    Con este código, el array de int64 se convierte en una slice de interface{}, que puede ser almacenada en una PropertyList. Luego, la nueva PropertyList con los valores se utiliza para guardar la entidad en Datastore.

Comments are closed.