MongoDB è un database distribuito basato su documenti, generico e flessibile, posizionandosi tra un database relazionale e uno non relazionale (NoSQL). È il database non relazionale più ricco di funzionalità e simile a un database relazionale.

Un esempio di documento MongoDB

{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Jane",
  "lastname": "Wu",
  "address": {
    "street": "1 Circle Rd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90404"
  },
  "hobbies": ["surfing", "coding"]
}

Niente di speciale, solo un pezzo di dati JSON. I dati del documento memorizzati in MongoDB sono simili a questi dati JSON. Grazie alla memorizzazione di dati JSON, il formato dei dati memorizzati in MongoDB è molto flessibile. A differenza di MySQL, che deve avere una struttura tabellare fissa, ciò significa che è possibile aggiungere o eliminare campi in qualsiasi momento e la velocità è anche molto veloce.

Suggerimento: se la tua attività non ha elevati requisiti per transazioni complesse, join e coerenza dei dati, e semplicemente cerchi un rapido accesso e scrittura dei dati, alta concorrenza, formati di archiviazione flessibili e liberi e non hai bisogno di definire in anticipo le strutture delle tabelle, MongoDB è una buona scelta.

Caratteristiche di MongoDB

Prestazioni elevate

MongoDB garantisce una persistenza dei dati ad alte prestazioni. In particolare,

  • L'utilizzo di un modello di dati integrato può ridurre le operazioni di I/O del sistema di database.
  • Supporta l'indicizzazione, quindi l'efficienza delle query è molto alta e i campi indicizzati possono essere campi di documenti incorporati o chiavi di array.

Linguaggio di query ricco

MongoDB supporta un ricco insieme di espressioni di query per soddisfare vari scenari di query aziendali.

Supporto per le query geospaziali

Per le attività O2O e le attività collegate alla posizione, sono necessarie frequenti query geospaziali, come la ricerca di negozi nelle vicinanze, persone nelle vicinanze o determinare se sei in una zona commerciale. Tutto ciò richiede il supporto al recupero geospaziale.

Elevata disponibilità

Il set di repliche di MongoDB fornisce:

  • Failover automatico
  • Ridondanza dei dati

Un set di repliche è un gruppo di istanze di mongod che mantengono lo stesso set di dati, fornendo ridondanza dei dati e supporto all'alta disponibilità.

Scalabilità orizzontale

MongoDB supporta la scalabilità orizzontale. Utilizzando lo sharding, i dati sono distribuiti su un cluster di macchine.