Skip to content
Back to skills

Mongodb

ASecurity

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

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
databasesgosql

Works with

  • mcp

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add Vitammiin/agent-vorcl-flow --skill mongodb --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mongodb?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mongodb
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vitammiin-mongodb/badge)](https://www.skillsdirectory.com/skills/vitammiin-mongodb)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

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

# Навык: 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`. Любые записи/дроп-операции — только с подтверждением человека.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…