Sobes.tech
Junior — Middle

Czy masz doświadczenie z typem danych jsonb w bazie danych?

sobes.tech AI

Odpowiedź od AI

Tak, typ danych jsonb w bazie danych PostgreSQL jest binarną reprezentacją JSON, która pozwala na efektywne przechowywanie i indeksowanie danych JSON.

W Go, do pracy z jsonb zazwyczaj używa się pakietu database/sql wraz z driverem dla PostgreSQL (np. lib/pq lub pgx). Do przesyłania i odbierania danych w polu jsonb używa się typów takich jak []byte lub string, a także struktur, które są serializowane/deserializowane za pomocą pakietu encoding/json.

Przykład zapisu struktury do pola 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
}

W ten sposób, praca z jsonb obejmuje serializację struktur do JSON, zapis w polu jsonb oraz późniejsze zapytania i deserializację.