Работал ли с JSON типом данных поля в БД
Python
Middle
Без компании
Работал ли с JSON типом данных поля в БД
Ответы
Да, работал. В PostgreSQL есть тип данных `json` и `jsonb`, который позволяет хранить JSON-документы. `jsonb` более эффективен, так как хранит данные в бинарном формате и поддерживает индексацию.
Пример работы с `jsonb` в SQLAlchemy:
```
from sqlalchemy import Column, JSONB
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
preferences = Column(JSONB) # Хранение JSON-данных
# Пример вставки
user = User(preferences={'theme': 'dark', 'notifications': True})
session.add(user)
session.commit()
# Запрос с фильтрацией по JSON-полю
dark_theme_users = session.query(User).filter(
User.preferences['theme'].astext == 'dark'
).all()
```
Также работал с MongoDB, где документы хранятся в BSON (бинарный JSON).