skilly. Buy ad slot
All skills
Community / AGENT SKILL

mongodb

Vitammiin/agent-vorcl-flow
0 installs 2 GitHub stars
0

Работа с MongoDB — моделирование документов (embed vs reference), паттерны схем, индексы (составные/multikey/text/TTL/wildcard), aggregation pipeline, транзакции, replica set и sharding, антипаттерны. Use при работе с MongoDB/документной БД, проектировании коллекций или оптимизации запросов и агрегаций.

BEFORE YOU INSTALL

Understand the trade-offs.

SECURITY REVIEW

Not yet assessed

Review the original instructions and requested permissions before installing.

No security review is available for this catalog entry yet.

SKILL QUALITY

Not yet assessed

How clearly the skill guides your agent, how complete its workflow is, and how you can check the outcome.

No quality assessment is available for this catalog entry yet.

The full skill.

Original instructions from the publisher’s SKILL.md

# Навык: MongoDB

Документная БД для гибкой схемы, иерархических данных и высокой скорости итераций. Схема есть — просто она в коде.

## Когда уместна (vs PostgreSQL)
- Хорошо: агрегаты, читаемые целиком (профиль, заказ с позициями), гибкие/эволюционирующие поля, высокая нагрузка на запись, гео/каталоги.
- Плохо: сильносвязанные данные с множеством JOIN, жёсткие транзакции между многими сущностями, отчётность произвольными срезами — там реляционка.

## Моделирование: embed vs reference
- **Embed** (вкладывай), если данные читаются вместе, отношение «содержит», размер ограничен. Правило: *data that is accessed together should be stored together*.
- **Reference** (ссылайся), если данные растут без границы, переиспользуются, или обновляются независимо. Связка через `_id` + `$lookup` при необходимости.
- Дизайн идёт **от запросов** (query-driven), а не от нормализации.

## Паттерны схем
- **Bucket** — группировать time-series/события в документы-корзины. **Computed** — хранить предподсчитанные агрегаты. **Subset** — во вложении держать только горячую часть, остальное в отдельной коллекции. **Extended Reference** — дублировать часто читаемые поля из связанной сущности. **Outlier** — спец-обработка редких «толстых» документов.

## Индексы
- **Составной** (порядок по правилу ESR: Equality → Sort → Range). **Multikey** — по массивам. **Text** — поиск по тексту. **TTL** — авто-удаление по времени. **Wildcard** — под непредсказуемые поля. **Partial**/**unique**.
- Проверяй планы через `explain("executionStats")`: цель — `IXSCAN`, а не `COLLSCAN`; следи за `totalDocsExamined` ≈ `nReturned`.

## Aggregation pipeline
- Этапы: `$match` (раньше всех, чтобы задействовать индекс) → `$project` → `$group` → `$sort` → `$lookup` → `$facet`.
- `$match`/`$sort` до `$group`; тяжёлые `$lookup` — точечно; следи за лимитом памяти этапа (`allowDiskUse` при необходимости).

## Транзакции и консистентность
- Многодокументные ACID-транзакции есть (replica set/sharded), но дороги — предпочитай атомарность одного документа (обновляй агрегат целиком).
- **Write concern** (`w:"majority"`) и **read concern** — под требования долговечности/консистентности.

## Масштаб
- **Replica set** — отказоустойчивость и чтение с реплик. **Sharding** — горизонтальный масштаб; ключ шардирования выбирай под равномерность и запросы (плохой ключ = горячие чанки, его не сменить дёшево).

## Антипаттерны
- Безграничные растущие массивы в документе (лимит 16MB); «реляционка на Mongo» (много коллекций + ручные JOIN); massive documents; отсутствие индексов под фактические запросы; шардинг-ключ по монотонному полю.

## Через MCP
MCP-сервер `mongodb` (`mongodb-mcp-server`) — инспекция коллекций/индексов, запросы и агрегации, `explain`. Для аудита используй режим `--readOnly`. Любые записи/дроп-операции — только с подтверждением человека.