search method
Search within a collection with searchText
.
It is reload internally and the search results are returned in CollectionBase
.
It is not possible to filter or sort and return values using CollectionModelQuery keys in conjunction with a search.
Sorting, etc., should be done on the client side to sort the search results before returning them.
searchText
でコレクション内の検索を行います。
内部でreloadされ検索結果がCollectionBase
で返されます。
検索と併せてCollectionModelQueryのキーを用いたフィルタリングやソートして値を返すことはできません。
ソートなどは検索結果をクライアント側でソートしてから返してください。
Implementation
Future<CollectionBase<TModel>> search(String searchText) async {
final existsFilter = _modelQuery.filters
.firstWhereOrNull((item) => item.type == ModelQueryFilterType.like);
if (existsFilter?.value?.toString() == searchText) {
return this;
}
_databaseQuery = null;
_modelQuery = CollectionModelQuery._(
modelQuery.path,
filters: [
...modelQuery.filters.where((e) => e.type != ModelQueryFilterType.like),
ModelQueryFilter._(
type: ModelQueryFilterType.like,
key: searchValueFieldKey,
value: searchText,
),
],
adapter: modelQuery.adapter,
);
return await reload();
}