code: def INDEX_OF_ARRAY(string_expression, substring_expression, start=None, end=None):
      
      res = [string_expression, substring_expression]
      if start is not None:
          res.append(start)
      if end is not None:
          res.append(end)
      return {'$indexOfArray': res}
docs: Searches an array for an occurence of a specified value and returns the array index of the first occurence.
      See https://docs.mongodb.com/manual/reference/operator/aggregation/zip/
      for more details
      :param string_expression: Any valid expression as long as it resolves to an array.
      :param substring_expression: Can be any valid expression.
      :param start: A number that can be represented as integers that specifies the starting index position for the search.
      :param end: A number that can be represented as integers that specifies the ending index position for the search.
      :return: Aggregation operator