MongoDB
簡介
MongoDB 是最受歡迎的 NoSQL 文件導向資料庫之一,以其高寫入負載(適用於分析或物聯網)和高可用性(易於設定具有自動故障轉移的複製集)而聞名。它還可以輕鬆地對資料庫進行分片以實現水平擴展,並具有強大的查詢語言,用於執行聚合、文字搜尋或地理空間查詢。
與 SQL 資料庫以行或列的形式儲存資料不同,MongoDB 資料庫中的每個記錄都是以 BSON(資料的二進位表示)描述的文件。然後,應用程式可以以 JSON 格式檢索此資訊。它支援多種資料類型,包括文件、陣列、嵌入式文件和二進位資料。
在使用 Laravel 使用 MongoDB 之前,我們建議透過 Composer 安裝和使用 mongodb/laravel-mongodb
套件。laravel-mongodb
套件由 MongoDB 官方維護,雖然 PHP 本身透過 MongoDB 驅動程式原生支援 MongoDB,但 Laravel MongoDB 套件提供了與 Eloquent 和其他 Laravel 功能更豐富的整合
composer require mongodb/laravel-mongodb
安裝
MongoDB 驅動程式
若要連線到 MongoDB 資料庫,需要 mongodb
PHP 擴充功能。如果您使用 Laravel Herd 在本機開發,或透過 php.new
安裝 PHP,您的系統上已安裝此擴充功能。但是,如果您需要手動安裝擴充功能,您可以透過 PECL 進行安裝
pecl install mongodb
有關安裝 MongoDB PHP 擴充功能的更多資訊,請查看 MongoDB PHP 擴充功能安裝說明。
啟動 MongoDB 伺服器
MongoDB Community Server 可用於在本機執行 MongoDB,並且可在 Windows、macOS、Linux 上安裝,或作為 Docker 容器使用。若要了解如何安裝 MongoDB,請參閱 MongoDB 社群版官方安裝指南。
MongoDB 伺服器的連線字串可以在您的 .env
檔案中設定
MONGODB_URI="mongodb://127.0.0.1:27017"MONGODB_DATABASE="laravel_app"
若要在雲端託管 MongoDB,請考慮使用 MongoDB Atlas。若要從您的應用程式在本機存取 MongoDB Atlas 叢集,您需要將您自己的 IP 位址新增至專案的 IP 存取清單中,在叢集的網路設定中進行設定。
MongoDB Atlas 的連線字串也可以在您的 .env
檔案中設定
MONGODB_URI="mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority"MONGODB_DATABASE="laravel_app"
安裝 Laravel MongoDB 套件
最後,使用 Composer 安裝 Laravel MongoDB 套件
composer require mongodb/laravel-mongodb
如果未安裝 mongodb
PHP 擴充功能,則此套件安裝將會失敗。PHP 設定在 CLI 和網頁伺服器之間可能有所不同,因此請確保在兩種設定中都啟用該擴充功能。
設定
您可以在應用程式的 config/database.php
設定檔中設定 MongoDB 連線。在此檔案中,新增一個使用 mongodb
驅動程式的 mongodb
連線
'connections' => [ 'mongodb' => [ 'driver' => 'mongodb', 'dsn' => env('MONGODB_URI', 'mongodb://127.0.0.1:27017'), 'database' => env('MONGODB_DATABASE', 'laravel_app'), ],],
功能
完成設定後,您可以在您的應用程式中使用 mongodb
套件和資料庫連線,以利用各種強大的功能
- 使用 Eloquent,模型可以儲存在 MongoDB 集合中。除了標準的 Eloquent 功能外,Laravel MongoDB 套件還提供其他功能,例如嵌入式關聯。該套件還提供對 MongoDB 驅動程式的直接存取,可用於執行原始查詢和聚合管道等操作。
- 使用查詢產生器編寫複雜的查詢。
mongodb
快取驅動程式經過最佳化,可以使用 MongoDB 的功能,例如 TTL 索引,以自動清除過期的快取項目。-
使用
mongodb
佇列驅動程式分派和處理佇列工作。 - 透過 Flysystem 的 GridFS 介面卡將檔案儲存在 GridFS 中。
- 大多數使用資料庫連線或 Eloquent 的第三方套件都可以與 MongoDB 一起使用。
若要繼續了解如何使用 MongoDB 和 Laravel,請參閱 MongoDB 的 快速入門指南。