class_docstr: Aggregation request which can be passed to `Client.aggregate`.
class_docstr_tok: ["Aggregation","request","which","can","be","passed","to","`","Client.aggregate","`","."]
docstr: Specify one or more projection expressions to add to each result
  
  ### Parameters
  
  - **kwexpr**: One or more key-value pairs for a projection. The key is
      the alias for the projection, and the value is the projection
      expression itself, for example `apply(square_root="sqrt(@foo)")`
docstr_tok: ["Specify","one","or","more","projection","expressions","to","add","to","each","result","#","#","#","Parameters","-","*","*","kwexpr","*","*",":","One","or","more","key-value","pairs","for","a","projection",".","The","key","is","the","alias","for","the","projection",",","and","the","value","is","the","projection","expression","itself",",","for","example","`","apply","(","square_root=","''","sqrt","(","@","foo",")","''",")","`"]
code: def apply(self, **kwexpr) -> "AggregateRequest":
      """
      Specify one or more projection expressions to add to each result
  
      ### Parameters
  
      - **kwexpr**: One or more key-value pairs for a projection. The key is
          the alias for the projection, and the value is the projection
          expression itself, for example `apply(square_root="sqrt(@foo)")`
      """
      for alias, expr in kwexpr.items():
          ret = ["APPLY", expr]
          if alias is not None:
              ret += ["AS", alias]
          self._aggregateplan.extend(ret)
  
      return self
  
imports: from typing import List, Union
label_desc: Use image node_id 4 for calling the AggregateRequest obj's underlying member method code with example usage: obj.apply() and returns: self