为您的数据模型设计搜索
Atlas Search提供了多种方法来帮助您优化针对不同数据模型的查询。使用以下教程学习;了解常见的设计模式,以便您可以使用Atlas Search有效地查询数据。
先决条件
要完成这些教程,您必须具备:
运行 MongoDB 4.2 或更高版本的 Atlas 集群。
示例数据已加载到 Atlas 集群中。
Project Data Access Admin
或更高访问权限Atlas以创建Atlas Search项目。Search Tester、 、
mongosh
、 Compass或受支持的MongoDB驱动程序,用于在集群上运行查询。
注意
您可以在$search
聚合阶段使用任何驾驶员来运行Atlas Search查询。这些教程包括精选客户端的示例。有关详细信息,请参阅特定教程页面。
还可以通过使用 Atlas CLI 创建的本地 Atlas 部署来完成这些教程。要了解详情,请参阅创建本地 Atlas 部署。
使用特定于字符串的操作符查询非字符串字段
某些Atlas Search操作符(例如queryString和autocomplete)仅支持字符串字段。如果需要使用这些操作符查询非字符串字段,可以将这些字段的值转换为字符串,并将转换的字段存储在物化视图中。物化视图允许您使用特定于字符串的操作符来查询转换后的字段,并在源集合中保持原始数据不变。
要开始使用,请参阅如何将非字母数据作为字符串进行搜索。
嵌入式文档内的查询字段
您可以使用Atlas Search查询文档大量中的字段,即使文档大量是嵌套的。将文档字段索引为 embeddedDocuments 类型后,您可以对这些文档内的字段运行查询,包括以下类型数组内的字段:
文档数组。
文档内含文档的数组。
文档大量内的文档数组。
要开始使用,请参阅如何对嵌入式文档中的字段运行Atlas Search查询。
跨多个集合查询
当搜索必须跨越多个集合时,可以使用以下方法进行跨集合搜索:
要连接集合并跨集合搜索,请使用带有 的
$lookup
$search
阶段。要合并多个集合的搜索结果,请使用
$unionWith
阶段。要合并多个集合以便同时对它们进行索引和搜索,请创建物化视图。
要开始使用,请参阅如何跨多个集合运行Atlas Search查询。