跳到内容

MongoDB

介绍

MongoDB 是最流行的 NoSQL 文档型数据库之一,因其高写入负载(适用于分析或物联网)和高可用性(易于设置具有自动故障转移的副本集)而被广泛使用。它还可以轻松地对数据库进行分片以实现水平扩展,并拥有强大的查询语言,用于执行聚合、文本搜索或地理空间查询。

与 SQL 数据库将数据存储在行或列的表中不同,MongoDB 数据库中的每条记录都是一个以 BSON 描述的文档,BSON 是数据的二进制表示形式。然后,应用程序可以以 JSON 格式检索此信息。它支持各种数据类型,包括文档、数组、嵌入式文档和二进制数据。

在 Laravel 中使用 MongoDB 之前,我们建议通过 Composer 安装并使用 mongodb/laravel-mongodb 扩展包。laravel-mongodb 扩展包由 MongoDB 官方维护,虽然 PHP 通过 MongoDB 驱动原生支持 MongoDB,但 Laravel MongoDB 扩展包提供了与 Eloquent 和其他 Laravel 功能更丰富的集成

1composer require mongodb/laravel-mongodb

安装

MongoDB 驱动

要连接到 MongoDB 数据库,需要安装 mongodb PHP 扩展。如果您正在本地使用 Laravel Herd 开发,或者通过 php.new 安装了 PHP,那么您的系统已经安装了此扩展。但是,如果您需要手动安装此扩展,可以通过 PECL 进行安装

1pecl install mongodb

有关安装 MongoDB PHP 扩展的更多信息,请查看 MongoDB PHP 扩展安装说明

启动 MongoDB 服务器

MongoDB Community Server 可用于在本地运行 MongoDB,并且可以在 Windows、macOS、Linux 或 Docker 容器上安装。要了解如何安装 MongoDB,请参阅官方 MongoDB Community 安装指南

MongoDB 服务器的连接字符串可以在您的 .env 文件中设置

1MONGODB_URI="mongodb://127.0.0.1:27017"
2MONGODB_DATABASE="laravel_app"

对于在云端托管 MongoDB,请考虑使用 MongoDB Atlas。要从您的应用程序本地访问 MongoDB Atlas 集群,您需要在集群的网络设置中将您自己的 IP 地址添加到项目的 IP 访问列表

MongoDB Atlas 的连接字符串也可以在您的 .env 文件中设置

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

安装 Laravel MongoDB 扩展包

最后,使用 Composer 安装 Laravel MongoDB 扩展包

1composer require mongodb/laravel-mongodb

如果未安装 mongodb PHP 扩展,则此扩展包的安装将失败。PHP 配置在 CLI 和 Web 服务器之间可能有所不同,因此请确保在两种配置中都启用了该扩展。

配置

您可以通过应用程序的 config/database.php 配置文件配置您的 MongoDB 连接。在此文件中,添加一个使用 mongodb 驱动的 mongodb 连接

1'connections' => [
2 'mongodb' => [
3 'driver' => 'mongodb',
4 'dsn' => env('MONGODB_URI', 'mongodb://127.0.0.1:27017'),
5 'database' => env('MONGODB_DATABASE', 'laravel_app'),
6 ],
7],

特性

完成配置后,您可以在应用程序中使用 mongodb 扩展包和数据库连接,以利用各种强大的功能

要继续学习如何使用 MongoDB 和 Laravel,请参阅 MongoDB 的 快速入门指南

Laravel 是构建最有效率的方式,用于
构建、部署和监控软件。