deleteBy method

Future<DeletedAtResponse> deleteBy({
  1. required String indexName,
  2. required DeleteByParams deleteByParams,
  3. RequestOptions? requestOptions,
})

This operation doesn't accept empty queries or filters. It's more efficient to get a list of object IDs with the browse operation, and then delete the records using the batch operation.

Required API Key ACLs:

  • deleteIndex

Parameters:

  • indexName Name of the index on which to perform the operation.
  • deleteByParams
  • requestOptions additional request configuration.

Implementation

Future<DeletedAtResponse> deleteBy({
  required String indexName,
  required DeleteByParams deleteByParams,
  RequestOptions? requestOptions,
}) async {
  assert(
    indexName.isNotEmpty,
    'Parameter `indexName` is required when calling `deleteBy`.',
  );
  final request = ApiRequest(
    method: RequestMethod.post,
    path: r'/1/indexes/{indexName}/deleteByQuery'.replaceAll(
        '{' r'indexName' '}', Uri.encodeComponent(indexName.toString())),
    body: deleteByParams.toJson(),
  );
  final response = await _retryStrategy.execute(
    request: request,
    options: requestOptions,
  );
  return deserialize<DeletedAtResponse, DeletedAtResponse>(
    response,
    'DeletedAtResponse',
    growable: true,
  );
}