Sobes.tech
Junior — Middle

Tem experiência com o tipo de dado jsonb em bancos de dados?

sobes.tech IA

Resposta da IA

Sim, o tipo de dado jsonb na base de dados PostgreSQL é uma representação binária de JSON que permite armazenar e indexar dados JSON de forma eficiente.

Em Go, para trabalhar com jsonb, geralmente usa-se o pacote database/sql junto com o driver para PostgreSQL (por exemplo, lib/pq ou pgx). Para passar e receber dados no campo jsonb, utilizam-se tipos como []byte ou string, bem como estruturas que são serializadas/deserializadas usando o pacote encoding/json.

Exemplo de como gravar uma estrutura em um campo 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
}

Assim, a experiência com jsonb inclui a serialização de estruturas em JSON, armazenamento no campo jsonb e posterior consulta e desserialização.