MongoDB Search 提供多种方法帮助您优化针对不同数据模型的查询。使用以下教程学习;了解常见设计模式,以便使用MongoDB Search 有效地查询数据。
先决条件
如要完成这些教程,您必须具备以下条件:
An Atlas cluster with MongoDB version 6.0 or later or a MongoDB self-managed cluster with MongoDB version 8.2 or later.
The sample data loaded into your cluster.
Project Data Access Admin或更高项目访问权限,以创建MongoDB搜索索引。Search Tester,
mongosh, Compass, or a supported MongoDB Driver to run queries on your cluster.
注意
You can run MongoDB Search queries by using any driver through the $search aggregation stage. These tutorials include examples for a selection of clients. Refer to the specific tutorial page for details.
您还可以通过使用Atlas CLI创建的本地部署或本地部署来完成这些教程。要学习;了解更多信息,请参阅创建本地Atlas部署和自托管部署。
使用字符串特定的操作符查询非字符串字段
某些MongoDB Search 操作符(例如 queryString 和 autocomplete)仅支持字符串字段。如果需要使用这些操作符查询非字符串字段,可以将这些字段的值转换为字符串,并将转换的字段存储在物化视图中。物化视图允许您使用特定于字符串的操作符来查询转换后的字段,并在源集合中保持原始数据不变。
要开始使用,请参阅如何以字符串形式搜索非字母数据。
查询嵌入式文档内的字段
您可以使用MongoDB Search查询文档大量中的字段,即使文档大量是嵌套的。将文档字段索引为 embeddedDocuments 类型后,您可以对这些文档内的字段运行查询,包括以下类型数组内的字段:
文档数组。
嵌套在文档中的文档数组。
文档数组中的文档数组。
要开始使用,请参阅如何对嵌入式文档中的字段运行MongoDB搜索查询。
跨多个集合的查询
当搜索必须跨越多个集合时,您可以使用以下方法在这些集合中进行搜索:
要将多个集合的搜索结果合并,请使用
$unionWith阶段。要整合多个集合以便能够一起进行索引和搜索,请创建一个物化视图。
要开始使用,请参阅如何跨多个集合运行MongoDB搜索查询。