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