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

执行文本查询

在本指南中,您可以学习;了解如何使用 Laravel MongoDB运行文本查询

您可以使用文本查询来检索在指定字段中包含术语或短语的文档。术语是不包括空白字符的字符序列。短语是具有任意数量的空白字符的一系列术语。

This guide describes the Eloquent model methods that you can use to search text and provides examples. To learn more about Eloquent models in the Laravel Integration, see the Model Your Data section.

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

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

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

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

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

在执行文本查询之前,必须在文本值字段上创建文本索引。要学习;了解有关创建索引的更多信息,请参阅模式生成器指南的管理索引部分。

您可以在查询中使用 $text 操作符,然后使用过滤给 where() 方法的 $search 字段来执行文本查询。$text操作符对文本索引字段执行文本查询。$search字段指定要搜索的文本。

使用where()方法构建查询后,链接get()方法以检索查询结果。

此示例在 Movie Eloquent 模型上调用 where() 方法,以检索plot字段包含短语 "love story" 的文档。要执行此文本查询,集合必须在 plot字段上具有文本索引。

使用以下语法指定查询:

$movies = Movie::where('$text', ['$search' => '"love story"'])
->get();

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

class MovieController
{
public function show()
{
$movies = Movie::where('$text', ['$search' => '"love story"'])
->get();
return view('browse_movies', [
'movies' => $movies
]);
}
}
Title: Cafè de Flore
Year: 2011
Runtime: 120
IMDB Rating: 7.4
IMDB Votes: 9663
Plot: A love story between a man and woman ...
Title: Paheli
Year: 2005
Runtime: 140
IMDB Rating: 6.7
IMDB Votes: 8909
Plot: A folk tale - supernatural love story about a ghost ...
Title: Por un puèado de besos
Year: 2014
Runtime: 98
IMDB Rating: 6.1
IMDB Votes: 223
Plot: A girl. A boy. A love story ...
...

文本查询会分配一个数字文本分数,以指示每个结果与查询过滤中的字符串的匹配程度。您可以使用 orderBy() 方法对 textScore 元元数据字段进行排序,从而按相关性对结果进行排序。您可以使用$meta操作符访问权限此元数据:

$movies = Movie::where('$text', ['$search' => '"love story"'])
->orderBy('score', ['$meta' => 'textScore'])
->get();

提示

要学习;了解有关orderBy() 方法的更多信息,请参阅“修改查询输出”指南的“对查询结果进行排序”部分。

要查看演示如何使用 Laravel 集成执行查找操作的可运行代码示例,请参阅以下用法示例:

To learn how to retrieve data based on filter criteria, see the Retrieve MongoDB Data guide.