Sobes.tech
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.