MongoDB
MongoDB è un database NoSQL document-oriented che memorizza i dati in documenti JSON-like (BSON). È ideale per applicazioni con schemi flessibili e dati non strutturati.
Cos'è MongoDB
MongoDB è un database NoSQL che:
- Memorizza documenti in formato BSON (Binary JSON)
- Non richiede schema fisso - ogni documento può avere struttura diversa
- Scala orizzontalmente con sharding
- Supporta query potenti su documenti nested
Configurazione Base
| Campo | Descrizione |
|---|---|
| Enabled | Attiva o disabilita MongoDB |
| Version | Versione di MongoDB da utilizzare |
Configurazione Docker
| Campo | Descrizione |
|---|---|
| CPU Cores Limit | Limite CPU per il container |
| Memory Limit (MB) | Limite memoria per il container in MB |
File di Configurazione
| File | Descrizione |
|---|---|
| mongod.conf | Configurazione principale di MongoDB |
| Dockerfile | File Docker per la build dell'immagine |
Connessione dall'Applicazione
Dalla rete Docker interna:
- Host:
mongodb - Porta:
27017
Versioni Supportate
| Versione | Stato | Note |
|---|---|---|
| 7.0 | Attiva | Ultime funzionalità |
| 6.0 | Attiva | Stabile, consigliata |
| 5.0 | Attiva | Supporto a lungo termine |
Casi d'Uso Ideali
MongoDB è perfetto per:
- Cataloghi prodotti con attributi variabili
- Content Management con contenuti flessibili
- IoT e time-series con grandi volumi di dati
- Real-time analytics con aggregazioni
- Sessioni utente e profili
Quando NON Usare MongoDB
Evita MongoDB quando:
- Hai relazioni complesse tra entità
- Hai bisogno di transazioni ACID su più documenti
- I tuoi dati sono altamente strutturati e non cambiano
Best Practices
- Progetta per le query - struttura i documenti in base a come li leggerai
- Embedded vs Referenced - embedded per dati strettamente correlati
- Crea indici per i campi usati nelle query
- Usa la validazione schema se hai bisogno di consistenza
- Monitora le prestazioni con explain()