Как работать с JSONB в Postgres из Go?

Ответ

JSONB хранится в бинарном виде, поддерживает индексы (GIN), операторы @>, ?, jsonb_path_query. В Go сканируют в []byte и json.Unmarshal или в тип с datatype (pgx). Запросы с условиями по полям JSON: WHERE data @> $1, передают JSON. Для сложной логики используют сырой SQL с функциями jsonb_*.

var data []byte
err := db.QueryRowContext(ctx, "SELECT data FROM events WHERE data @> $1", "{\"type\":\"click\"}").Scan(&data)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.