Как использовать агрегатную функцию .max() в базе данных Isar для Flutter?

Я изучаю, как использовать базу данных Isar для моего приложения Flutter. Я пытаюсь получить максимальное значение столбца. Документация 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;
}
...

[JS за 1 час] - 9. Асинхронный
[JS за 1 час] - 9. Асинхронный
JavaScript является однопоточным, то есть он может обрабатывать только одну задачу за раз. Для обработки длительных задач, таких как сетевые запросы,...
Топ-10 компаний-разработчиков PHP
Топ-10 компаний-разработчиков PHP
Если вы ищете надежных разработчиков PHP рядом с вами, вот список лучших компаний по разработке PHP.
Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python
📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что...
Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
Подъем в javascript
Подъем в javascript
Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих...
Улучшение генерации файлов Angular
Улучшение генерации файлов Angular
Angular - это фреймворк. Вы можете создать практически любое приложение без использования сторонних библиотек.
0
0
116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно этой документации, вам нужно запустить запрос свойства, чтобы использовать операцию .max(). Запрос свойств изолирует и возвращает одно свойство (или столбец, если думать в терминах SQL), над которым затем можно выполнять агрегированные операции, такие как .max(), .min(), .sum(), .average().

В вашем примере замените строку <rest_of_query_here> на следующую:

final clientId = await isar.clients.where().clientIdProperty().max();

Другие вопросы по теме