Help us improve
Share bugs, ideas, or general feedback.
From dex-skill-mongodb
MongoDB — schema design, индексы, aggregation, ловушки. Активируется при mongodb, mongo, bson, aggregation pipeline, document database, mongoose, mongosh, replica set, ObjectId, collection, find, updateMany, atlas, NoSQL
How this skill is triggered — by the user, by Claude, or both
Slash command
/dex-skill-mongodb:mongodbThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Плохо: `new MongoClient("mongodb://localhost")` внутри метода — каждый вызов создает новый connection pool
Share bugs, ideas, or general feedback.
Плохо: new MongoClient("mongodb://localhost") внутри метода — каждый вызов создает новый connection pool
Правильно: MongoClient как Singleton через DI — один экземпляр на приложение
Почему: MongoClient содержит connection pool внутри, thread-safe. Новый клиент на запрос = утечка соединений, исчерпание лимита
Плохо: List<LogEntry> ActivityLog внутри User — массив растет бесконечно
Правильно: отдельная коллекция activity_logs с UserId как reference
Почему: документ > 16MB = MongoBulkWriteException. Даже до лимита — чтение/запись всего массива при каждом обращении
Плохо: embed User внутри Order — при смене email обновлять все заказы
Правильно: reference по CustomerId, embed только данные которые читаются вместе и редко меняются
Почему: update embedded data = обновление каждого документа где embed встречается. Для 10000 заказов = 10000 update операций
Плохо: ShippingAddress как отдельная коллекция — лишний запрос при каждом чтении заказа
Правильно: embed Address внутри Order — всегда читаются вместе, bounded, редко меняется
Почему: каждый reference = дополнительный запрос. Embed для bounded co-read данных дает один запрос вместо двух
Плохо: Find(o => o.Status == "pending" && o.CreatedAt > cutoff) без compound index
Правильно: compound index по ESR rule: Ascending(Status) + Descending(CreatedAt)
Почему: без индекса MongoDB сканирует ВСЮ коллекцию. На миллионе документов — секунды вместо миллисекунд
Плохо: индекс { CreatedAt: -1, Status: 1 } — Range перед Equality
Правильно: ESR: Equality первый, Sort второй, Range последний
Почему: неправильный порядок = индекс используется частично или не используется. Проверяй через explain()
Плохо: cron job для удаления старых audit logs / sessions
Правильно: TTL index: CreateIndexModel с ExpireAfter = TimeSpan.FromDays(30) на поле даты
Почему: TTL index удаляет автоматически, не требует кода, не нагружает приложение
Плохо: Find(filter).ToListAsync() + .Select(o => o.Id) в приложении
Правильно: Find(filter).Project(Builders<T>.Projection.Include(o => o.Id)).ToListAsync()
Почему: без projection MongoDB передает весь документ по сети. Для документов с большими полями — значительный overhead
Плохо: while (true) { Find(new).ToListAsync(); Task.Delay(5000); } — polling каждые N секунд
Правильно: WatchAsync с pipeline filter по OperationType
Почему: polling = лишние запросы + задержка до N секунд. Change Streams — реактивно, без задержки, без лишней нагрузки
Плохо: добавление нового поля в класс ломает чтение старых документов (нет поля в BSON)
Правильно: ConventionPack с IgnoreExtraElementsConvention(true) зарегистрирован глобально
Почему: без конвенции удаление/переименование поля в коде = exception при десериализации существующих документов
Плохо: StartSessionAsync + StartTransaction на standalone MongoDB
Правильно: транзакции работают только на Replica Set (минимум 1 node RS). Для dev — rs.initiate()
Почему: standalone MongoDB не поддерживает multi-document transactions. Ошибка только в runtime
npx claudepluginhub dex-it/claude-code-marketplace --plugin dex-skill-mongodbMines projects and conversations into a searchable memory palace and retrieves past work via semantic search.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.