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

设置读取偏好

在本指南中,您可以学习;了解如何在使用 Laravel MongoDB执行查找操作时设立读取偏好(read preference)。

要运行本指南中的代码示例,请完成快速入门教程。 本教程说明如何使用示例数据设置 MongoDB Atlas 实例,并在 Laravel Web 应用程序中创建以下文件:

  • Movie.php 文件,其中包含一个Movie movies模型来表示collection中的文档

  • MovieController.php 文件,其中包含用于运行数据库操作的show()函数

  • browse_movies.blade.php 文件,其中包含用于显示数据库操作结果的 HTML 代码

以下部分介绍如何编辑 Laravel 应用程序中的文件以运行查找操作代码示例并查看预期输出。

要指定哪些副本集接收读取操作,请使用 readPreference() 方法设立读取偏好(read preference)。

readPreference() 方法接受以下参数:

  • mode:(必需)指定读取偏好(read preference)模式的字符串值。

  • tagSets:(可选)指定与某些副本集成员相对应的键值标签的大量值。

  • options:(可选)指定其他读取偏好(read preference)选项的大量值。

提示

要查看可用读取偏好(read preference)模式和选项的完整列表,请参阅MongoDB PHP扩展文档中的MongoDB\驱动程序\ReadPreference::__construct。

以下示例查询其中 title字段的值为 "Carrie" 的文档,并将读取偏好(read preference)为 ReadPreference::SECONDARY_PREFERRED。因此,如果没有可用的从节点,查询将从从节点(secondary node from replica set)副本集成员或主节点 (primary node in the replica set)成员检索结果:

使用以下语法指定查询:

$movies = Movie::where('title', 'Carrie')
->readPreference(ReadPreference::SECONDARY_PREFERRED)
->get();

要在browse_movies视图中查看查询结果,请编辑MovieController.php文件中的show()函数,使其类似于以下代码:

class MovieController
{
public function show()
{
$movies = Movie::where('title', 'Carrie')
->readPreference(ReadPreference::SECONDARY_PREFERRED)
->get();
return view('browse_movies', [
'movies' => $movies
]);
}
}

要了解如何根据过滤器条件检索数据,请参阅检索 MongoDB 数据指南。

要学习;了解如何修改 Laravel 集成返回结果的方式,请参阅 修改查询结果 指南。