Sobes.tech
Junior — Middle

Ar turite patirties dirbant su jsonb duomenų tipu duomenų bazėje?

sobes.tech AI

Atsakymas iš AI

Taip, jsonb duomenų tipas PostgreSQL duomenų bazėje yra dvejetainė JSON reprezentacija, leidžianti efektyviai saugoti ir indeksuoti JSON duomenis.

Go kalboje, dirbant su jsonb, dažniausiai naudojamas database/sql paketas kartu su PostgreSQL tvarkykle (pvz., lib/pq arba pgx). Duomenų perdavimui ir gavimui iš jsonb lauko naudojami tokie tipai kaip []byte arba string, taip pat struktūros, kurios serializuojamos/deserializuojamos naudojant encoding/json paketą.

Pavyzdys, kaip įrašyti struktūrą į jsonb lauką:

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
}

Šiuo būdu, dirbant su jsonb, apima struktūrų serializaciją į JSON, jų saugojimą jsonb lauke ir vėlesnius užklausimus bei deserializaciją.