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

use*_*514 5 dart flutter flutter-hive

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

框行=

Key.     => Value  
'abc123' => {'name': 'JK', 'country':'GB', 'timestamp': '568'},
'etergb' => {'name': 'FS', 'country':'DE', 'timestamp': '425'}
'546hfg' => {'name': 'TD', 'country':'GB', 'timestamp': '687'}
Run Code Online (Sandbox Code Playgroud)

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

sha*_*hil 2

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

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

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


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

  @HiveField(1)
  String name;

  //...
  
  CategoryModel(this.id, this.name);
}
Run Code Online (Sandbox Code Playgroud)