MongoDB

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

MongoDB

简介

MongoDB是最受欢迎的NoSQL文档型数据库之一,以其高写入负载(适用于分析或物联网场景)和高可用性(轻松设置自动故障转移的副本集)著称。它还能轻松实现分片以支持水平扩展,并拥有强大的查询语言支持聚合、文本搜索和地理空间查询。

与SQL数据库以行列形式存储数据不同,MongoDB中的每条记录都是以BSON(数据的二进制表示形式)格式存储的文档。应用程序可以JSON格式检索这些信息,支持多种数据类型包括文档、数组、嵌套文档和二进制数据等。

在Laravel中使用MongoDB前,我们推荐通过Composer安装mongodb/laravel-mongodb扩展包。该包由MongoDB官方维护,虽然PHP原生支持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社区版可用于本地运行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://<用户名>:<密码>@<集群>.mongodb.net/<数据库名>?retryWrites=true&w=majority"
MONGODB_DATABASE="laravel_app"

安装Laravel MongoDB扩展包

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

composer require mongodb/laravel-mongodb

[!注意]
若未安装mongodb PHP扩展,扩展包安装将失败。请注意PHP的CLI配置与Web服务器配置可能不同,需确保两个环境均已启用该扩展。

配置

您可以通过应用的config/database.php配置文件来配置MongoDB连接。在该文件中添加使用mongodb驱动的连接配置:

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

功能特性

完成配置后,您可以在应用中使用mongodb扩展包和数据库连接来获得以下强大功能:

要了解更多关于MongoDB和Laravel的使用方法,请参阅MongoDB的快速入门指南

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

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

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

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

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
贡献者:2
讨论数量: 0
发起讨论 只看当前版本


暂无话题~