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

如何将非字母数据作为字符串进行搜索

本教程演示了如何通过将非字符串字段转换为字符串并将它们存储在物化视图中,针对这些非字符串字段运行字符串特定的查询。物化视图可让您使用特定于字符串的操作符来查询转换后的字段,并在源集合中保持原始数据不变。

本教程将指导您完成以下步骤:

在开始之前,请确保您的集群满足先决条件中描述的要求。

本节演示如何在 airbnb-mat-viewsample_airbnb.listingsAndReviews 上创建名为 的 物化视图集合.此视图将源集合中的各种数字和日期字段存储为 string 字段。

要运行本教程在转换字段上运行查询阶段中的查询,您需要在 airbnb_mat_view 物化视图中的转换字符串字段上创建MongoDB Search 索引。

以下 JSON 定义在 airbnb_mat_view 物化视图上定义 MongoDB Search 索引。您可以使用动态或静态映射来指定要在集合中索引的字段,具体取决于要运行的查询类型。要进一步了解字段映射或 MongoDB Search 索引语法,请参阅定义字段映射索引参考

以下JSON MongoDB Search索引定义使用动态映射对物化视图中的字段索引。您可以使用此索引通过queryString操作符运行查询。

您无法使用autocomplete操作符对动态索引字段运行查询。

{
"mappings": {
"dynamic": true
}
}

以下JSON MongoDB Search索引定义使用静态映射将物化视图中的字段索引为autocomplete 类型。您可以使用此索引通过autocomplete操作符运行查询。

不能使用 queryString 操作符对索引为 autocomplete 类型的字段运行查询。

{
"mappings": {
"dynamic": false,
"fields": {
"accommodatesNumber": [
{
"dynamic": true,
"type": "document"
},
{
"minGrams": 1,
"type": "autocomplete"
}
],
"lastScrapedDate": [
{
"dynamic": true,
"type": "document"
},
{
"type": "autocomplete"
}
],
"maximumNumberOfNights": [
{
"dynamic": true,
"type": "document"
},
{
"minGrams": 1,
"type": "autocomplete"
}
]
}
}
}

要学习;了解如何使用您的首选接口创建上面定义的索引,请参阅支持的客户端。

您可以对已转换为字符串的 numeric 和 date 字段运行查询。本教程使用 queryStringautocomplete 操作符来搜索属性。查询使用了下列管道阶段:

  • $search 搜索集合的阶段

  • $limit 阶段将输出限制为 5 个结果。

  • $project 要排除的阶段 _id

在本部分中,您将连接到集群并使用操作符针对 airbnb_mat_view集合中的字段运行示例查询。

注意

您无法对物化视图中已转换为字符串的日期和数字字段运行近期范围查询。