executeCountQuery method

Future<int> executeCountQuery(
  1. {@required String field,
  2. @required AGConnectCloudDBQuery query,
  3. @required AGConnectCloudDBZoneQueryPolicy policy}
)

You can call this method to search for Cloud DB zone objects that meet specified conditions and return the number of data records in a specified field. During statistics collection, if the value of this field is not empty, count 1. Otherwise, count 0.

Comply with the following rules when invoking this method:

  • This method is called to query the number of the specified fields only when Cloud DB zone is opened. Otherwise, the query will fail.
  • The startAt(), startAfter(), endAt(), and endBefore() methods cannot be used as query conditions.

Implementation

Future<int> executeCountQuery({
  @required String field,
  @required AGConnectCloudDBQuery query,
  @required AGConnectCloudDBZoneQueryPolicy policy,
}) async {
  if (field == null || field.isEmpty) {
    throw FormatException('Value of field cannot be null or an empty string.', field);
  }
  if (query == null) {
    throw FormatException('Value of query cannot be null.', query);
  }
  if (policy == null) {
    throw FormatException('Value of policy cannot be null.', policy);
  }

  try {
    return await _methodChannel.invokeMethod<int>(
      MethodConstants.EXECUTE_COUNT_QUERY,
      <String, dynamic>{
        KeyConstants.ZONE_ID: this._id,
        KeyConstants.FIELD: field,
        KeyConstants.QUERY: query.query,
        KeyConstants.POLICY_INDEX: policy.index,
      },
    );
  } catch (e) {
    throw AGConnectCloudDBException.from(e);
  }
}