You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ObjectBox Flutter:如何实现带排序与限制的查询(替代getAll)

ObjectBox Flutter 实现无过滤条件的排序+限制查询

要实现查询全部数据、按名称升序排序、取前5条的需求,你可以通过ObjectBox的query() API完成,以下是最优实现方式:

正确代码示例

final boxListCoins = objectBoxDatabase.store.box<CoinsList>();

// 构建查询:无过滤条件(默认查全部)→ 按名称升序 → 限制返回5条
final query = boxListCoins.query()
  ..order(CoinsList_.name, flags: Order.ascending)
  ..limit(5)
  ..build();

final coinsList = query.find();
// 释放查询资源,避免内存泄漏
query.close();

关键说明

  • 无过滤查询:box.query()不传入任何条件时,默认会匹配集合中所有数据,无需额外配置
  • 排序配置:将CoinsList_.coinId替换为你的实体类中对应名称的字段(比如CoinsList_.name),Order.ascending指定升序(默认即为升序,该参数可省略,显式写出更清晰)
  • 限制条数:通过链式调用..limit(5)直接配置,比build()后再赋值query.limit = 5更简洁
  • 资源释放:查询完成后务必调用query.close(),避免内存泄漏

紧凑写法(可选)

如果追求代码简洁,也可以用链式调用一步完成:

final boxListCoins = objectBoxDatabase.store.box<CoinsList>();

final query = boxListCoins.query()
  ..order(CoinsList_.name)
  ..limit(5)
  ..build();
final coinsList = query.find();
query.close();

内容的提问来源于stack exchange,提问作者Sheitak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:06:24