Sobes.tech
Junior — Middle

Van tapasztalata jsonb adattípussal adatbázisokban?

sobes.tech MI

Válasz az MI-től

Igen, a jsonb adattípus a PostgreSQL adatbázisban egy bináris reprezentációja a JSON-nek, amely lehetővé teszi a JSON-adatok hatékony tárolását és indexelését.

Go-ban a jsonb-vel való munkához általában a database/sql csomagot és a PostgreSQL-hez tartozó drivert (például lib/pq vagy pgx) használják. A jsonb mezőben történő adatátvitelhez és fogadásához olyan típusokat használnak, mint a []byte vagy a string, valamint olyan szerkezeteket, amelyeket a encoding/json csomag segítségével serializálnak/deserializálnak.

Példa egy szerkezet jsonb mezőbe írására:

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
}

Így a jsonb-vel való munka magában foglalja a szerkezetek JSON-re történő serializálását, azok tárolását a jsonb mezőben, valamint a lekérdezést és a deserializálást.