Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序

运行 Atlas Search 查询

在本指南中,您可以学习;了解如何使用Kotlin Sync驾驶员对集合运行Atlas Search查询。Atlas Search使您能够对MongoDB Atlas上托管的集合执行全文搜索。Atlas Search索引指定搜索行为以及要索引的字段。

本指南中的示例使用Atlas示例数据集sample_mflix数据库中的 movies集合。要学习;了解如何创建免费的MongoDB Atlas 群集并加载示例数据集,请参阅Atlas入门指南。要学习;了解有关聚合操作和构建者的更多信息,请参阅 聚合操作指南。

本节将介绍如何创建聚合管道以在集合上运行 Atlas Search 查询。您可以使用 Aggregates.search() 构建器方法来创建 $search 管道阶段,该阶段指定搜索条件。然后,调用 aggregate() 方法,并将您的管道作为参数传递。

注意

仅适用于 Atlas for MongoDB v4.2 及更高版本

此聚合管道操作符仅适用于在运行v4.2 或更高版本的MongoDB Atlas集群上托管且由Atlas Search索引覆盖的集合。从Atlas Search文档了解详情有关此操作符所需设置和功能的更多信息。

在运行Atlas Search查询之前,您必须在集合上创建Atlas Search索引。要学习;了解如何以编程方式创建Atlas Search索引,请参阅索引指南中的创建搜索索引部分。

此示例通过执行以下操作来运行Atlas Search查询:

  • 使用 Aggregates.search() 构建器方法构建 $search 阶段,指示驱动程序查询 title 字段中包含单词 "Alabama" 的文档

  • 使用 Aggregates.project() 构建器方法构造 $project 阶段,指示驾驶员在查询结果中包含 title字段

  • 将管道阶段传递到 aggregate() 方法并打印结果

val pipeline: List<Bson> = listOf(
search(SearchOperator.text(
fieldPath("title"), "Alabama")),
project(Projections.include("title"))
)
val results = collection.aggregate(pipeline)
results.forEach { doc ->
println(doc.toJson())
}
{"_id": {"$oid": "..."}, "title": "Alabama Moon"}
{"_id": {"$oid": "..."}, "title": "Crazy in Alabama"}
{"_id": {"$oid": "..."}, "title": "Sweet Home Alabama"}

使用 searchMeta() 方法创建 $searchMeta 管道阶段,该阶段仅返回Atlas全文搜索结果中的元数据。

提示

仅适用于 Atlas for MongoDB v4.4.11 及更高版本

此聚合管道操作符仅适用于运行 v4.4.11 及更高版本的 MongoDB Atlas 集群。

以下示例显示了 Atlas 搜索聚合阶段的 near 元数据:

searchMeta(
SearchOperator.near(2010, 1, fieldPath("year"))
)

要学习;了解有关Atlas Search 的更多信息,请参阅Atlas文档中的Atlas Search

要学习;了解有关本指南中提到的方法的更多信息,请参阅以下API文档:

后退

运行数据库命令

在此页面上