Sobes.tech
Back to questions
Junior — Middle
83

Имел ли опыт работы с типом данных jsonb в базе данных?

Companies where asked
Бери Заряд

Answer from AI

sobes.tech 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 и последующий запрос и десериализацию.