文档菜单
文档首页
/ / /
Kotlin 同步驱动程序
/

检索数据

本页内容

  • 概述
  • 示例数据
  • 查找文档
  • 查找文档示例
  • 修改查找行为
  • 附加信息
  • API 文档

在此指南中,您可以了解如何使用 Kotlin 同步驱动程序通过读取操作从 MongoDB 集合中检索数据。使用 find() 方法检索符合查询过滤器中指定的条件集的文档。

本指南中的示例使用来自 sample_restaurants 数据库中的 restaurants 集合。Atlas 示例数据集。要了解如何创建免费的 MongoDB Atlas 集群并加载数据集,请参阅 Atlas 入门指南

该集合中的文档由以下 Kotlin 数据类建模:

data class Restaurant(
val name: String,
val cuisine: String
)

find() 方法从集合中检索文档。此方法接受一个 查询过滤器 并返回所有匹配的文档。查询过滤器是一个文档,它指定驱动程序用于从集合中匹配文档的条件。

有关查询过滤器的更多信息,请参阅指定查询指南。

以下示例使用 find() 方法查找所有 cuisine 字段的值为 "Spanish" 的文档。

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish"))

在先前的示例中,find()操作返回一个FindIterable对象,您可以通过使用forEach()方法迭代它,如下面的示例所示

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish"))
results.forEach { result ->
println(result)
}
Restaurant(name=Tropicoso Club, cuisine=Spanish)
Restaurant(name=Beso, cuisine=Spanish)
Restaurant(name=Sabor Latino Restaurant, cuisine=Spanish)
...

注意

查找所有文档

要查找集合中的所有文档,请将空过滤器传递给find()方法

val results = collection.find()

您可以通过将方法链接到find()方法调用来修改find()方法的行为。下表描述了用于修改查询的常用方法

方法
描述
batchSize()
限制每个批次返回的文档数量。有关批量大小的更多信息,请参阅MongoDB服务器手册中的cursor.batchSize()
collation()
设置查询的排序选项。
comment()
指定要附加到查询的字符串。这可以帮助您在服务器日志和配置文件数据中跟踪和解释操作。有关查询注释的更多信息,请参阅MongoDB服务器手册中的$comment
hint()
指定用于查询的索引。
limit()
限制从查询返回的文档数量。
maxTime()
设置此操作在服务器上的最大执行时间。
skip()
设置要跳过的文档数。
sort()
定义要应用于查询的排序标准。

以下示例将limit()maxTime()方法链接起来,以将查询返回的文档数量限制为10,并在操作上设置最大执行时间为10000毫秒

val results = collection
.find(eq(Restaurant::cuisine.name, "Spanish"))
.limit(10)
.maxTime(10000)

要查看修改find()方法行为的完整方法列表,请参阅FindIterable类的API文档

要了解更多关于查询过滤器的信息,请参阅指定查询。

要查看使用Kotlin Sync驱动程序检索文档的可运行代码示例,请参阅从MongoDB读取数据。

要了解更多关于本指南中讨论的任何方法或类型的信息,请参阅以下API文档

  • find()

  • FindIterable

返回

指定查询