Sobes.tech
Junior — Middle

Ma'lumotlar bazasida jsonb ma'lumotlar turida ishlash tajribangiz bormi?

sobes.tech AI

AIdan javob

Ha, PostgreSQL ma jsonb ma'lumotlar turi, bu JSON ning ikkilamchi taqdimoti bo'lib, JSON ma'lumotlarini samarali saqlash va indekslash imkonini beradi.

Go tilida, jsonb bilan ishlash uchun odatda database/sql paketi va PostgreSQL uchun drayver (masalan, lib/pq yoki pgx) ishlatiladi. jsonb maydonida ma'lumotlarni uzatish va olish uchun []byte yoki string turlari va encoding/json paketidan serializatsiya/qayta serializatsiya qilingan tuzilmalar ishlatiladi.

Tuza strukturasini jsonb maydoniga yozish misoli:

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
}

Shu tarzda, jsonb bilan ishlash strukturalarni JSON ga seriyalash, jsonb maydoniga saqlash va keyinchalik so'rovlar va deserializatsiya qilishni o'z ichiga oladi.