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 и последващи заявки и десериализация.