我正在学习如何在Flutter应用程序中使用Isar数据库。我正在尝试获取列的最大值。Isar文档建议我可以使用.max()
聚合函数,但没有给予如何在查询中实际使用它的示例。
下面是我的代码。我想有人建议我把什么地方的<rest_of_query_here>
。我试图把它放在.where()
,.filter()
,甚至.findAll()
后,但没有一个是可以接受的。
part 'client.g.dart';
@collection
class Client {
Id id = Isar.autoIncrement; // you can also use id = null to auto increment
@Index(type: IndexType.value)
String? clientId; // actually a number of the form '10001','10002',...
String? lastname;
String? firstname;
}
...
// We should use .max() somewhere in the query
Future<String> getMaxClientId() async {
final isar = await Isar.open([ClientSchema]);
final clientId = await isar.clients.<rest_of_query_here>;
return clientId == null ? '10000' : clientId;
}
...
1条答案
按热度按时间6jygbczu1#
根据本文档,您需要运行一个属性查询来使用.max()操作。属性查询隔离并返回一个属性(如果用SQL术语考虑,则为列),然后您可以对该属性运行 * 聚合操作 ,如 .max()、.min()、.sum()、.average()*。
对于您的示例,请将该行替换<rest_of_query_here>为以下内容: