Sobes.tech
Junior — Middle

Kas teil on kogemusi jsonb andmetüübi kasutamisel andmebaasis?

sobes.tech AI

Vastus AI-lt

Jah, jsonb andmetüüp PostgreSQL andmebaasis on binaarne JSON-i esitlus, mis võimaldab tõhusalt salvestada ja indekseerida JSON-andmeid.

Go-s kasutatakse jsonb-ga töötamiseks tavaliselt database/sql paketti koos PostgreSQL draiveriga (näiteks lib/pq või pgx). Andmete edastamiseks ja vastuvõtmiseks jsonb-väljal kasutatakse tüüpe nagu []byte või string, samuti struktuure, mis serialiseeritakse/deserialiseeritakse encoding/json paketiga.

Näide struktuuri kirjutamisest jsonb-välja:

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
}

Sellise töö jsonb-ga hõlmab struktuuride serialiseerimist JSON-iks, nende salvestamist jsonb-välja ja hilisemat päringut ning deserialiseerimist.