search method

Future<CollectionBase<TModel>> search(
  1. String searchText
)

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();
}