MongoDB

Introduzione

MongoDB è uno dei database NoSQL orientati ai documenti più popolari, utilizzato per il suo elevato carico di scrittura (utile per analytics o IoT) e per l’alta disponibilità (facile configurare set di repliche con failover automatico). Può anche shardare facilmente il database per la scalabilità orizzontale e dispone di un linguaggio di query potente per eseguire aggregazioni, ricerche testuali o query geospaziali.

Invece di memorizzare i dati in tabelle di righe o colonne come i database SQL, ogni record in un database MongoDB è un documento descritto in BSON, una rappresentazione binaria dei dati. Le applicazioni possono recuperare queste informazioni in formato JSON. Supporta una vasta gamma di tipi di dati, inclusi documenti, array, documenti incorporati e dati binari.

Prima di usare MongoDB con Laravel, consigliamo di installare e utilizzare il pacchetto mongodb/laravel-mongodb tramite Composer. Il pacchetto laravel-mongodb è ufficialmente mantenuto da MongoDB e, sebbene MongoDB sia supportato nativamente da PHP tramite il driver MongoDB, il Laravel MongoDB offre un’integrazione più ricca con Eloquent e altre funzionalità di Laravel:

composer require mongodb/laravel-mongodb

Installazione

Driver MongoDB

Per connettersi a un database MongoDB, è necessaria l’estensione PHP mongodb. Se stai sviluppando localmente usando Laravel Herd o hai installato PHP tramite php.new, questa estensione è già presente nel tuo sistema. Tuttavia, se devi installare l’estensione manualmente, puoi farlo tramite PECL:

pecl install mongodb

Per maggiori informazioni sull’installazione dell’estensione PHP MongoDB, consulta le istruzioni di installazione dell’estensione MongoDB PHP.

Avviare un server MongoDB

Il MongoDB Community Server può essere usato per eseguire MongoDB in locale ed è disponibile per l’installazione su Windows, macOS, Linux o come container Docker. Per sapere come installare MongoDB, consulta la guida ufficiale all’installazione di MongoDB Community.

La stringa di connessione per il server MongoDB può essere impostata nel file .env:

MONGODB_URI="mongodb://localhost:27017"
MONGODB_DATABASE="laravel_app"

Per ospitare MongoDB nel cloud, considera l’utilizzo di MongoDB Atlas. Per accedere a un cluster MongoDB Atlas localmente dalla tua applicazione, dovrai aggiungere il tuo indirizzo IP nelle impostazioni di rete del cluster nella Lista di Accesso IP del progetto.

La stringa di connessione per MongoDB Atlas può essere impostata anche nel file .env:

MONGODB_URI="mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority"
MONGODB_DATABASE="laravel_app"

Installa il pacchetto Laravel MongoDB

Infine, usa Composer per installare il pacchetto Laravel MongoDB:

composer require mongodb/laravel-mongodb

L’installazione di questo pacchetto fallirà se l’estensione PHP mongodb non è installata. La configurazione PHP può variare tra la CLI e il server web, quindi assicurati che l’estensione sia abilitata in entrambe le configurazioni.

Configurazione

Puoi configurare la tua connessione MongoDB tramite il file di configurazione config/database.php della tua applicazione. All’interno di questo file, aggiungi una connessione mongodb che utilizza il driver mongodb:

'connections' => [
    'mongodb' => [
        'driver' => 'mongodb',
        'dsn' => env('MONGODB_URI', 'mongodb://localhost:27017'),
        'database' => env('MONGODB_DATABASE', 'laravel_app'),
    ],
],

Caratteristiche

Una volta completata la configurazione, puoi utilizzare il pacchetto mongodb e la connessione al database nella tua applicazione per sfruttare una varietà di potenti funzionalità:

  • Utilizzo di Eloquent, i modelli possono essere archiviati nelle collezioni MongoDB. Oltre alle funzionalità standard di Eloquent, il pacchetto Laravel MongoDB offre funzionalità aggiuntive come relazioni nidificate. Il pacchetto fornisce anche accesso diretto al driver MongoDB, che può essere utilizzato per eseguire operazioni come raw queries e pipeline di aggregazione.
  • Scrivere query complesse utilizzando il query builder.
  • Il driver cache mongodb è ottimizzato per utilizzare le funzionalità di MongoDB come gli indici TTL per cancellare automaticamente le voci cache scadute.
  • Inviare ed elaborare lavori in coda con il driver di coda mongodb.
  • Archiviare file in GridFS, tramite il GridFS Adapter per Flysystem.
  • La maggior parte dei pacchetti di terze parti che utilizzano una connessione al database o Eloquent possono essere utilizzati con MongoDB.

Per continuare a imparare come utilizzare MongoDB e Laravel, consulta la guida rapida.

Lascia un commento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *