Overview
本指南向您展示如何将 Laravel MongoDB添加到新的 Laravel Web应用程序,连接到MongoDB Atlas上托管的MongoDB 集群,以及对数据执行写入操作。
提示
如果您更愿意使用MongoDB PHP库而不是 Laravel 连接到MongoDB ,请参阅MongoDB PHP库文档中的连接到MongoDB。
Laravel 集成扩展了 Laravel Eloquent 和查询生成器语法,以便在MongoDB中存储和检索数据。
MongoDB Atlas 是完全托管的云数据库服务,旨在托管您的 MongoDB 部署。您可以按照本指南中的步骤创建您的免费(无需信用卡)MongoDB Atlas 部署。
提示
您可以通过克隆laravel-quickstart Github存储库下载完整的 Web应用程序项目。
先决条件
要创建入门应用程序,您需要在开发环境中安装以下软件:
终端应用程序和 Shell。对于 MacOS 用户,请使用终端或类似应用程序。对于 Windows 用户,请使用 PowerShell。
下载并安装
完成以下步骤,安装 Laravel 集成依赖项并将其添加到 Laravel Web应用程序。
提示
作为以下安装步骤的替代方法,您可以使用 Laravel Herd 安装MongoDB并为 Laravel MongoDB配置开发环境。有关将 Laravel Herd 与 MongoDB 结合使用的更多信息,请参阅 Herd 文档中的通过 Herd Pro 安装 MongoDB。
安装 MongoDB PHP 扩展
Laravel MongoDB需要MongoDB PHP扩展来管理MongoDB连接和命令。要学习;了解如何安装MongoDB PHP扩展,请参阅PHP库入门指南中的安装MongoDB PHP扩展步骤。
安装 Laravel
确保您安装的 Laravel 版本与 Laravel 集成的版本兼容。要学习;了解兼容的版本,请参阅兼容性页面。
运行以下命令安装 Laravel:
composer global require laravel/installer
安装完成后,该命令会输出以下消息:
Using version ^<version number> for laravel/installer
创建 MongoDB 部署
完成这些步骤后,您就在 Atlas 上有了一个新的免费套餐 MongoDB 部署、数据库用户档案以及加载到数据库中的示例数据。
创建连接字符串
您可以通过提供连接 URI(也称为连接字符串)来连接到 MongoDB 部署,它指示驱动程序如何连接到 MongoDB 部署以及连接时的行为方式。
连接字符串包含部署的主机名或 IP 地址和端口、身份验证机制、用户档案(如果适用)以及连接选项。
要连接到未托管在Atlas上的实例或部署,请参阅服务器手册中的连接字符串。
完成这些步骤后,您将拥有一个包含数据库用户名和密码的连接字符串。
配置 MongoDB 连接
配置应用程序环境变量文件
运行以下 shell 命令,将.env.example文件复制到项目根目录中名为.env的文件中:
cp .env.example .env
打开.env 文件,添加或编辑以下变量和值。将<connection string> 占位符替换为“创建连接字符串”步骤中的连接字符串字符串:
DB_CONNECTION=mongodb DB_URI="<connection string>"
例如,如果连接string为 "mongodb+srv://myUser:myPass123@mongo0.example.com/",则 DB_URI 变量将匹配以下行:
DB_URI="mongodb+srv://myUser:myPass123@mongo0.example.com/"
注意
确保 .env 文件中的这些变量在运行应用程序的shell中未定义。 shell 中的环境变量优先于.env文件中的环境变量。
添加 Laravel 集成提供商
打开bootstrap目录中的providers.php文件,并将以下条目添加到数组中:
MongoDB\Laravel\MongoDBServiceProvider::class,
提示
要学习;了解如何在 Laravel 10.x 中注册提供商,请参阅注册提供程序。
完成这些步骤后,您的 Laravel Web 应用程序已准备好连接到 MongoDB。
查看 MongoDB 数据
生成视图
从应用程序根目录运行以下命令,创建显示电影数据的视图:
php artisan make:view browse_movies
运行该命令后,会输出以下消息:
INFO View [resources/views/browse_movies.blade.php] created successfully.
打开resources/views目录中的browse_movies.blade.php视图文件。 将内容替换为以下代码并保存更改:
<!DOCTYPE html> <html> <head> <title>Browse Movies</title> </head> <body> <h2>Movies</h2> @forelse ($movies as $movie) <p> Title: {{ $movie->title }}<br> Year: {{ $movie->year }}<br> Runtime: {{ $movie->runtime }}<br> IMDB Rating: {{ $movie->imdb['rating'] }}<br> IMDB Votes: {{ $movie->imdb['votes'] }}<br> Plot: {{ $movie->plot }}<br> </p> @empty <p>No results</p> @endforelse </body> </html>
(可选)查看 JSON 文档形式的结果
您可以使用toJson()方法以 JSON 格式显示结果,而不是生成视图和编辑browse_movies.blade.php文件。
将show()函数替换为以下代码以检索结果并将其作为JSON文档返回:
public function show() { $results = Movie::where('runtime', '<', 60) ->where('imdb.rating', '>', 8.5) ->orderBy('imdb.rating', 'desc') ->take(10) ->get(); return $results->toJson(); }
查看电影数据
在网络浏览器中打开URL 127001http://...:8000 /browse_movies 。该页面显示电影列表以及每部电影的详细信息。
提示
您可以从应用程序根目录运行php artisan route:list命令来查看可用路由列表。
将数据写入 MongoDB
向 API 发布请求
创建一个名为movie.json的文件并插入以下数据:
{ "title": "The Laravel MongoDB Quick Start", "year": 2024, "runtime": 15, "imdb": { "rating": 9.5, "votes": 1 }, "plot": "This movie entry was created by running through the Laravel MongoDB Quick Start tutorial." }
通过在 shell 中运行以下命令,将 JSON 有效负载作为POST请求发送到端点:
curl -H "Content-Type: application/json" \ --data @movie.json \ http://localhost:8000/api/movies
查看数据
在网络浏览器中打开 127001http://...:8000 /browse_movies,查看您提交的电影信息。插入的电影出现在结果的顶部。
后续步骤
恭喜您完成入门指南!
完成这些步骤后,您就拥有了一个 Laravel Web应用程序,它使用 Laravel MongoDB连接到您的MongoDB 部署、对示例数据运行查询并呈现检索到的结果。
您可以通过克隆laravel-quickstart Github存储库下载Web应用程序项目。
提示
Tutorials
学习使用Laravel MongoDB构建后端服务教程,了解如何在 Laravel MongoDB应用程序中实现更多增删改查功能。
通过关注 Youtube 上的 使用 Laravel 和 MongoDB 的全栈 Instagram 克隆 教程,了解如何构建使用 Laravel MongoDB 的全堆栈应用程序。
进一步学习
通过以下资源了解有关 Laravel MongoDB 功能的更多信息:
连接到 MongoDB:了解如何配置 MongoDB 连接。
与数据交互:学习如何读取和写入 MongoDB 数据。
建模数据:使用 Eloquent 模型类来处理 MongoDB 数据。
查询构建器:使用查询构建器指定 MongoDB 查询和聚合。
注意
如果您在此页面上运行问题,请使用此页面右侧或右下角的 Rate this page标签页提交反馈。
您可以使用MongoDB Stack Overflow标签 或MongoDB Reddit Community 寻求一般问题的支持。

