MongoDB

未匹配的标注
本文档最新版为 12.x,旧版本可能放弃维护,推荐阅读最新版!

MongoDB

简介

MongoDB 是最受欢迎的 NoSQL 文档型数据库之一。它能够承受高写入负载,适用于数据分析或物联网场景;同时易于配置支持自动故障转移的副本集,提供高可用性。它还可以通过分片实现水平扩展,并提供强大的查询语言,用于聚合、文本搜索和地理空间查询。

SQL 数据库以表中的行或列存储数据,而 MongoDB 中的每条记录都是一个 BSON 文档,即数据的二进制表示形式。应用可以以 JSON 格式获取这些信息。MongoDB 支持多种数据类型,包括文档、数组、内嵌文档和二进制数据。

在 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

你也可以使用 PHP 官方扩展安装工具 PIE 安装该扩展:

pie install mongodb/mongodb-extension

关于 MongoDB PHP 扩展安装的更多信息,请参阅 MongoDB PHP 扩展安装指南。

启动 MongoDB 服务器

你可以使用 MongoDB 社区版在本地运行 MongoDB。它支持安装在 Windows、macOS、Linux 上,也可以通过 Docker 容器运行。具体安装方法请参阅 MongoDB 社区版官方安装指南。

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

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"

安装 Laravel MongoDB 扩展包

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

composer require mongodb/laravel-mongodb

[!NOTE]
如果未安装 mongodb PHP 扩展,扩展包将无法安装。命令行与 Web 服务器使用的 PHP 配置可能不同,请确保两者均已启用该扩展。

配置

你可以在应用的 config/database.php 配置文件中设置 MongoDB 连接。在该文件中添加一个使用 mongodb 驱动的 mongodb 连接:

'connections' => [
    'mongodb' => [
        'driver' => 'mongodb',
        'dsn' => env('MONGODB_URI', 'mongodb://localhost:27017'),
        'database' => env('MONGODB_DATABASE', 'laravel_app'),
    ],
],

功能特性

完成配置后,你可以在应用中通过 mongodb 扩展包和数据库连接使用以下功能:

要进一步了解如何在 Laravel 中使用 MongoDB,请参阅 MongoDB 的快速入门指南。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/laravel/13.x/mo...

译文地址:https://learnku.com/docs/laravel/13.x/mo...

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~