[MongoDB](https://www.mongodb.com/resources/products/fundamentals/why-use-mongodb) 是最流行的 NoSQL 文档型数据库之一, 用于其高写入负载 (对分析或物联网有用) 和高可用性 (易于设置具有自动故障转移的副本集)。 它还可以轻松地对数据库进行分片以实现水平可扩展性 并拥有强大的查询语言用于聚合, 文本搜索 或 地理空间查询。
与SQL数据库将数据存储在行或列的表中不同,MongoDB数据库中的每个记录都是一个以BSON格式描述的文档,BSON是数据的二进制表示形式。应用程序可以随后以JSON格式检索此信息。它支持多种数据类型,包括文档、数组、嵌入式文档和二进制数据。
在将 MongoDB 与 Laravel 结合使用之前,我们建议通过 Composer 安装并使用 mongodb/laravel-mongodb 软件包。laravel-mongodb 软件包由 MongoDB 官方维护,尽管 PHP 通过 MongoDB 驱动程序原生支持 MongoDB,但 Laravel MongoDB 软件包提供了与 Eloquent 及其他 Laravel 功能更丰富的集成:
composer require mongodb/laravel-mongodb要连接到 MongoDB 数据库,需要 mongodb PHP 扩展。如果您正在使用 Laravel Herd 进行本地开发,或通过 php.new 安装了 PHP,您的系统上应该已经安装了此扩展。但是,如果您需要手动安装此扩展,可以通过 PECL 进行安装:
pecl install mongodb有关安装 MongoDB PHP 扩展的更多信息,请查阅 MongoDB PHP 扩展安装说明.
MongoDB 社区版服务器可用于在本地运行 MongoDB,并可安装在 Windows、macOS、Linux 上或作为 Docker 容器。要了解如何安装 MongoDB,请参阅 官方 MongoDB 社区版安装指南。
MongoDB 服务器的连接字符串可以在您的 .env 文件中设置:
MONGODB_URI="mongodb://localhost: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"最后,使用 Composer 来安装 Laravel MongoDB 软件包:
composer require mongodb/laravel-mongodb[!NOTE]
此软件包的安装将会失败,如果mongodbPHP 扩展未安装。PHP 配置在 CLI 和 Web 服务器之间可能有所不同,因此请确保此扩展在这两种配置中都已启用。
您可以通过应用程序的 config/database.php 配置文件来配置您的 MongoDB 连接。在此文件中,添加一个使用 mongodb 驱动程序的 mongodb 连接:
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('MONGODB_URI', 'mongodb://localhost:27017'),
'database' => env('MONGODB_DATABASE', 'laravel_app'),
],
],配置完成后,您可以在应用程序中使用 mongodb 包和数据库连接,以利用各种强大的功能:
mongodb 缓存驱动 经过优化以利用 MongoDB 特性例如 TTL 索引来自动清除过期的缓存条目。mongodb 队列驱动程序。要继续学习如何使用 MongoDB 和 Laravel,请参阅 MongoDB 的快速入门指南。