Skip to content
Back to skills

Mongodb

ASecurity

Design and operate MongoDB: document modeling, queries, indexes, aggregation, replication, and sharding. Use for flexible NoSQL data.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agentspythongobashsqldockerdatabase

Works with

  • cli

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add ssrjkk/claude-skills --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/ssrjkk-mongodb/badge)](https://www.skillsdirectory.com/skills/ssrjkk-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: "Design and operate MongoDB: document modeling, queries, indexes, aggregation, replication, and sharding. Use for flexible NoSQL data."
category: database
tags: [mongodb, nosql, document-db, queries, indexes, aggregation, atlas]
models: [sonnet, opus, gpt-5, gemini-2.5, glm-4.6]
version: 1.0.0
created: 2026-09-26
updated: 2026-09-28
author: ssrjkk
---
# MongoDB

> Designing and operating flexible document databases with MongoDB.

## Quick Start
```bash
docker run --name mongo -p 27017:27017 -d mongo:8
mongosh
use app
db.users.insertOne({ name: "Alice", role: "admin" })
```

## When to Use
- Flexible or evolving document schemas
- High write throughput and horizontal scale
- Denormalized data with rich queries
- Prototyping where schema changes fast

## Best Practices

### Document Modeling
- Embed data read together; reference rarely-changed data
- Avoid unbounded arrays (prefer separate collections)
- Design for access patterns, not normalization
- Use `_id` or a unique index as the primary key

### Queries & Indexes
- Create indexes matching filter/sort patterns
- Use compound indexes with correct field order
- Prefer equality filters before range filters
- Monitor with `explain("executionStats")`

### Aggregation
- Use the aggregation pipeline for complex transforms
- Match/filter early, then group/project
- `$lookup` sparingly; prefer embedded data
- Cap stages and memory per pipeline

### Operations
- Use replica sets for HA; shard for scale
- Set `writeConcern` and `readPreference` deliberately
- Enable auth and TLS; never expose without auth
- Back up with mongodump or Atlas cloud backup

## Dependencies
```bash
docker run --name mongo -p 27017:27017 -d mongo:8
# Python driver
pip install pymongo
```

## Examples
```python
from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017")
db = client.app
users = db.users

# Create with unique index
users.create_index("email", unique=True)
users.insert_one({"name": "Alice", "email": "alice@example.com", "role": "admin"})
```
```python
# Query with filter and sort
result = users.find({"role": "admin"}).sort("created_at", -1).limit(10)
for user in result:
    print(user["name"])
```
```python
# Aggregation pipeline
pipeline = [
    {"$match": {"status": "paid"}},
    {"$group": {"_id": "$region", "total": {"$sum": "$amount"}}},
    {"$sort": {"total": -1}},
]
for row in db.orders.aggregate(pipeline):
    print(row)
```
```js
// mongosh: explain to verify index use
db.users.find({ email: "alice@example.com" }).explain("executionStats");
```

## Step-by-Step
1. Model documents around your read access patterns.
2. Decide embed vs reference for each relation.
3. Create indexes for the hot queries.
4. Write queries and aggregation pipelines.
5. Verify with `explain()` that indexes are used.
6. Set up a replica set for production.
7. Enable auth and TLS; restrict network exposure.
8. Configure backups and monitor metrics.

## Validation
1. Hot queries use indexes (explain shows IXSCAN)
2. Document model matches the access patterns
3. Aggregation results are correct
4. Replica set has a healthy primary
5. Backup/restore tested in staging

## Troubleshooting
- Slow queries: add/compound indexes; check sort order.
- Unbounded growth: split embedded arrays into collections.
- Connection drops: use connection pooling and retry writes.

Files in this skill

  • SKILL.md3.3 KB
  • SKILL.ru.md4.9 KB

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…