Prologo
Primi Passi
Architettura
Le Basi
- Routing
- Middleware
- Protezione da CSRF
- Controller
- Richieste
- Risposte
- Views
- Blade
- Vite
- URL
- Sessioni
- Validazione
- Errori
- Logging
Approfondimenti
- Artisan
- Broadcasting
- Cache
- Collezioni
- Concorrenza
- Contesto
- Contratti
- Eventi
- File System
- Helpers
- Client HTTP
- Localizzazione
- Notifiche
- Sviluppo di Package
- Processi
- Code
- Rate-limiting
- Stringhe
- Scheduling di Task
Sicurezza
Database
Eloquent ORM
Testing
Package
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.