Sobes.tech
Junior — Middle

Έχετε εμπειρία με τον τύπο δεδομένων jsonb σε βάσεις δεδομένων;

sobes.tech AI

Απάντηση από AI

Ναι, ο τύπος δεδομένων jsonb στη βάση δεδομένων PostgreSQL είναι μια δυαδική αναπαράσταση του JSON που επιτρέπει την αποδοτική αποθήκευση και ευρετηρίαση δεδομένων JSON.

Στη Go, για την εργασία με jsonb, συνήθως χρησιμοποιείται το πακέτο database/sql μαζί με τον οδηγό για PostgreSQL (π.χ., lib/pq ή pgx). Για την αποστολή και λήψη δεδομένων στο πεδίο jsonb, χρησιμοποιούνται τύποι όπως []byte ή string, καθώς και δομές που σειριοποιούνται/αποσειριοποιούνται μέσω του πακέτου encoding/json.

Παράδειγμα εγγραφής μιας δομής σε πεδίο 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
}

Έτσι, η εργασία με jsonb περιλαμβάνει τη σειριοποίηση δομών σε JSON, την αποθήκευσή τους σε πεδίο jsonb και την επακόλουθη ερώτηση και αποσειριοποίηση.