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

  1. Progetta per le query - struttura i documenti in base a come li leggerai
  2. Embedded vs Referenced - embedded per dati strettamente correlati
  3. Crea indici per i campi usati nelle query
  4. Usa la validazione schema se hai bisogno di consistenza
  5. Monitora le prestazioni con explain()

Prossimi Passi

  • Node.js - Runtime ideale per MongoDB
  • Redis - Cache per sessioni e dati temporanei