对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

Laravel 功能兼容性

本指南介绍了 Laravel MongoDB支持的 Laravel 功能。 本页讨论 Laravel 集成中 Laravel 版本12 .x功能的可用性。

以下部分包含的表格描述了 Laravel 集成中各个功能是否可用。

提示

MongoDB中的SQL概念

要学习;了解MongoDB如何表示SQL术语、概念和功能,请参阅SQL到MongoDB映射图表。

数据库功能
可用性

配置

✓

读/写连接

多个数据库连接

✓

监听查询事件

✓

监控累积查询时间

✓

事务

命令行界面 (CLI)

使用 MongoDB Shell (mongosh)。

数据库检查

不支持

数据库监控

不支持

多数据库支持/多种模式

不支持
Laravel 在 SQL 模式和表名之间使用点分隔符 (.),但 MongoDB 允许集合名称中包含 . 字符,这可能会导致命名空间解析异常。

集合和索引名称前缀

不支持

Laravel 集成不支持以下 Eloquent 方法:

  • toSql()

  • toRawSql()

  • whereColumn()

  • orWhereColumn()

  • whereFulltext()

  • groupByRaw()

  • orderByRaw()

  • inRandomOrder()

  • union()

  • unionAll()

  • havingRaw()

  • having()

  • havingBetween()

  • orHavingRaw()

  • whereIntegerInRaw()

  • orWhereIntegerInRaw()

  • whereIntegerNotInRaw()

  • orWhereIntegerNotInRaw()

查询功能
可用性

运行查询

✓

分块结果

✓

聚合

✓

Select 语句

✓

原始表达式

不支持

JOINs

使用$lookup 聚合阶段。要学习;了解更多信息,请参阅服务器手册中的 $lookup 参考资料。 Laravel MongoDB提供聚合操作来执行聚合。

联合(Unions)

使用$unionWith 聚合阶段。要学习;了解更多信息,请参阅服务器手册中的 $unionWith 参考资料。 Laravel MongoDB提供聚合操作来执行聚合。

✓

✓

逻辑分组

✓

✓

不支持

排序

✓

随机排序

不支持

分组

使用$group 聚合阶段。要学习;了解更多信息,请参阅服务器手册中的 $群组引用。 Laravel MongoDB提供聚合操作来执行聚合。

限制和偏移

✓

条件子句

✓

插入语句

✓

自动递增 ID

不受支持,因为 MongoDB 使用 ObjectID

更新或插入 (upsert)

更新语句

✓

更新 JSON 列

不支持

递增和递减值

✓

调试

✓

Laravel 集成支持所有 Laravel 分页功能。

Laravel 集成支持所有 Laravel迁移功能,但其实施特定于 MongoDB 的模式灵活模型。

Laravel 集成支持所有 Laravel 播种功能。

Eloquent 功能
可用性

模型

✓

UUID 和 ULID 密钥

✓

时间戳

✓

检索模型

✓

高级子查询

不支持

检索或创建模型

✓

检索聚合

部分支持

插入和更新模型

✓

更新或插入 (upsert)

删除模型

✓

软删除

✓

修剪模型

✓

提示

要了解更多信息,请参阅Eloquent 模型类指南。

Eloquent 功能
可用性

定义关系

✓

多对多关系

✓

多态关系

✓

动态关系

✓

查询关系

✓

聚合相关模型

不支持

插入和更新相关模型

✓

提示

要了解更多信息,请参阅Eloquent 模型关系指南。

Laravel 集成支持所有 Eloquent集合功能。

Eloquent 功能
可用性

类型转换

✓

数组和 JSON 转换

✓ 您可以在 MongoDB 中存储对象和数组,而无需序列化为 JSON。从 Laravel MongoDB v5.8 开始,array 投射类型已弃用。要了解更多信息,请参阅版本 5.8 已弃用。

日期转换

✓

枚举类型转换

✓

加密转换

✓

自定义转换

✓

提示

要了解更多信息,请参阅Eloquent 模型类指南。

Laravel 集成支持所有 Eloquent 工厂功能。