Junior — Middle
Aveți experiență cu tipul de date jsonb în baze de date?
sobes.tech AI
Răspuns de la AI
Da, tipul de date jsonb din baza de date PostgreSQL este o reprezentare binară a JSON-ului, care permite stocarea și indexarea eficientă a datelor JSON.
În Go, pentru a lucra cu jsonb, se folosește de obicei pachetul database/sql împreună cu driverul pentru PostgreSQL (de exemplu, lib/pq sau pgx). Pentru transmiterea și primirea datelor în câmpul jsonb, se utilizează tipuri precum []byte sau string, precum și structuri serializate/deserializate cu pachetul encoding/json.
Exemplu de scriere a unei structuri în câmpul jsonb:
import (
"database/sql"
"encoding/json"
_ "github.com/lib/pq"
)
type Data struct {
Name string `json:"name"`
Age int `json:"age"`
}
func insertJSONB(db *sql.DB, d Data) error {
jsonData, err := json.Marshal(d)
if err != nil {
return err
}
_, err = db.Exec("INSERT INTO table_name (jsonb_column) VALUES ($1)", jsonData)
return err
}
Astfel, experiența cu jsonb include serializarea structurilor în JSON, stocarea în câmpul jsonb și ulterior interogarea și deserializarea.