Sobes.tech
Junior — Middle

შეგიძლიათ მუშაობა jsonb მონაცემთა ტიპთან მონაცემთა ბაზაში?

sobes.tech AI

პასუხი AI-სგან

დიახ, PostgreSQL-ის მონაცემთა ბაზაში jsonb მონაცემთა ტიპი არის ბინარული წარმოდგენა 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 ველში და შემდეგ კითხვებს და დესერილიზაციას.