从 Flutter 中的 Hive 框中过滤和排序记录

问题描述

我使用带有 Flutter 的 Hive 将带有键的联系人存储为字母数字字符串,每个联系人数据都是一个带有时间戳的地图

方框行 =

Key.     => Value  
'abc123' => {'name': 'JK','country':'GB','timestamp': '568'},'etergb' => {'name': 'FS','country':'DE','timestamp': '425'}
'546hfg' => {'name': 'TD','timestamp': '687'}

现在可以使用 where country=GB 条件过滤这些并按 map.item.timestamp ASC/DESC 对行进行排序

解决方法

对于过滤,您可以使用 For 循环或 Map。

您可以执行排序。下面是一个例子。

var items = box.values.toList();
items.sort((a,b) => a.name.compareTo(b.name));


@HiveType(typeId: 0)
class CategoryModel extends HiveObject {
  @HiveField(0)
  String id;

  @HiveField(1)
  String name;

  //...
  
  CategoryModel(this.id,this.name);
}