Docs 菜单

Docs 主页开发应用程序Atlas Device SDKs

集合 - React Native SDK

在此页面上

  • 结果
  • 列表
  • 结果为延迟计算出的结果
  • 集合的实时性
  • 使用collection
  • 限制查询结果
  • 分页
  • 总结

Realm 有几种类型来表示对象组,我们将其称为collection。集合是包含零个或多个Realm 类型实例的对象。

您可以使用 Realm 的查询引擎对任意集合进行筛选和排序。集合为实时对象,因此它们始终会反映当前线程上 Realm 实例的当前状态。此外,还可通过订阅集合通知来侦听集合中的更改。

结果集合表示查询操作的延迟计算结果。结果不可变:您无法在结果集合中添加或删除元素。结果具有确定其内容的关联查询。

提示

另请参阅:

列表表示两个 Realm 类型之间的对多关系。列表是可变的:在写事务中,您可以在列表中添加和删除元素。列表不与查询关联,并声明为对象模型的属性。

提示

另请参阅:

Realm 仅在您请求该查询的结果时才运行查询。 这种延迟求值使您能够编写优雅、高性能的代码来处理大型数据集和复杂查询。

活动对象一样,Realm 集合通常也为实时集合:

  • 实时结果集合始终会反映关联查询的当前结果。

  • 实时列表始终会反映 Realm 实例关系的当前状态。

在以下情况下,collection处于实时状态:

collection通知相结合,实时collection支持响应式代码。例如,假设您的视图显示查询结果。 您可以在视图类中保留对结果collection的引用,然后根据需要读取结果collection,而无需刷新它或验证它是否是最新的。

重要

索引可能会更改

由于结果会自动更新自身,因此请勿存储集合中对象的位置索引或集合中对象的数量。存储的索引或数量值在您使用时可能已过期。

由于延迟求值,您不需要任何特殊机制来限制 Realm 的查询结果。 例如,如果您的查询匹配数千个对象,但您只想加载前十个对象,则仅访问collection的前十个元素。

借助延迟求值,分页的常见任务变得非常简单。例如,假设您有一个与某一查询关联的结果集合,而该查询可与您 Realm 中的数千个对象匹配。您选择每页显示一百个对象。要前进到任一页面,只需从与目标页面相对应的索引开始访问结果集合中的元素即可。

  • Realm collection是包含零个或多个Realm 实例的container。

  • Collection主要有两种:列表结果。列表定义 Realm 类型的多对多关系,而结果表示读取操作的延迟加载输出。

  • 结果collection的延迟求值意味着无需设计特殊查询来获取有限或分页的结果。执行查询并根据需要从collection中读取。

  • Realm 中的数据是实时的,这意味着对象始终反映其最近保存的状态。

← 属性类型 — React Native SDK