Class AccumulatorExpressions

java.lang.Object
dev.morphia.aggregation.expressions.AccumulatorExpressions

public final class AccumulatorExpressions extends Object
Defines helper methods for accumulator expressions
Since:
2.0
  • Method Details

    • accumulator

      public static AccumulatorExpression accumulator(String initFunction, String accumulateFunction, List<Object> accumulateArgs, String mergeFunction)
      Returns an array of unique expression values for each group. Order of the array elements is undefined.
      Parameters:
      initFunction - used to initialize the state. The init function receives its arguments from the initArgs expression.
      accumulateFunction - used to accumulate documents. The accumulate function receives its arguments from the current state and accumulateArgs array expression.
      accumulateArgs - Arguments passed to the accumulate function.
      mergeFunction - used to merge two internal states.
      Returns:
      the new expression
      Since:
      2.1
      Since server release
      4.4
      MongoDB documentation
      Aggregration Expression: $accumulator
    • addToSet

      public static Expression addToSet(Object value)
      Returns an array of unique expression values for each group. Order of the array elements is undefined.
      Parameters:
      value - the value
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $addToSet
    • avg

      public static Expression avg(Object value, Object... additional)
      Returns an average of numerical values. Ignores non-numeric values.
      Parameters:
      value - the value
      additional - any subsequent expressions to include in the expression
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $avg
    • bottom

      public static Expression bottom(Object output, Sort... sortBy)
      Returns the bottom element within a group according to the specified sort order.
      Parameters:
      output - the expression listing the fields to use
      sortBy - the sort order
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $bottom
    • bottomN

      public static Expression bottomN(Object n, Object output, Sort... sortBy)
      Returns an aggregation of the bottom n elements within a group, according to the specified sort order. If the group contains fewer than n elements, $bottomN returns all elements in the group.
      Parameters:
      n - the number of results per group and has to be a positive integral expression that is either a constant or depends on the _id value for $group
      output - the expression listing the fields to use
      sortBy - the sort order
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $bottomN
    • count

      public static Expression count()
      Returns the number of documents in a group.
      Returns:
      the expression
      Since:
      3.0
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $count
    • first

      public static Expression first(Object value)
      Returns a value from the first document for each group. Order is only defined if the documents are in a defined order.
      Parameters:
      value - the value
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $first
    • firstN

      public static Expression firstN(Object n, Object input)
      Returns an aggregation of the first n elements within a group. The elements returned are meaningful only if in a specified sort order. If the group contains fewer than n elements, $firstN returns all elements in the group.
      Parameters:
      n - the number of results per group and has to be a positive integral expression that is either a constant or depends on the _id value for $group
      input - the expression listing the fields to use
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $firstN
    • function

      public static Expression function(String body, Object... args)
      Defines a custom aggregation function or expression in JavaScript.
      Parameters:
      body - the function body
      args - the function arguments
      Returns:
      the new expression
      Since:
      2.1
      Since server release
      4.4
      MongoDB documentation
      Aggregration Expression: $function
    • last

      public static Expression last(Object value)
      Returns a value from the last document for each group. Order is only defined if the documents are in a defined order.
      Parameters:
      value - the value
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $last
    • lastN

      public static Expression lastN(Object n, Object input)
      Returns an aggregation of the last n elements within a group. The elements returned are meaningful only if in a specified sort order. If the group contains fewer than n elements, $lastN returns all elements in the group.
      Parameters:
      n - the number of results per group and has to be a positive integral expression that is either a constant or depends on the _id value for $group
      input - the expression listing the fields to use
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $lastN
    • max

      public static Expression max(Object value, Object... others)
      Returns the highest expression value for each group.
      Parameters:
      value - the value
      others - optional other fields to consider
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $max
    • maxN

      public static Expression maxN(Object n, Object input)
      Returns an aggregation of the max n elements within a group. The elements returned are meaningful only if in a specified sort order. If the group contains fewer than n elements, $maxN returns all elements in the group.
      Parameters:
      n - the number of results per group and n has to be a positive integral expression that is either a constant or depends on the _id value for $group.
      input - the expression that is the input to $maxN. It is evaluated for each element in the group and $maxN preserves the maximum n values.
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $maxN
    • min

      public static Expression min(Object value, Object... others)
      Returns the lowest expression value for each group.
      Parameters:
      value - the value
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $min
    • minN

      public static Expression minN(Object n, Object input)
      Returns an aggregation of the min n elements within a group. The elements returned are meaningful only if in a specified sort order. If the group contains fewer than n elements, $minN returns all elements in the group.
      Parameters:
      n - the number of results per group and n has to be a positive integral expression that is either a constant or depends on the _id value for $group.
      input - the expression that is the input to $minN. It is evaluated for each element in the group and $minN preserves the minimum n values.
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $minN
    • push

      public static Expression push(Object value)
      Returns an array of expression values for each group.
      Parameters:
      value - the value
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $push
    • push

      public static Push push()
      Returns an array of all values that result from applying an expression to each document in a group of documents that share the same group by key.

      $push is only available in the $group stage.

      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $push
    • sum

      public static Expression sum(Object first, Object... additional)
      Calculates and returns the sum of numeric values. $sum ignores non-numeric values.
      Parameters:
      first - the first value to sum
      additional - any subsequent values to include in the sum
      Returns:
      the new expression
      Since server release
      5.0
      MongoDB documentation
      Aggregration Expression: $sum
    • top

      public static Expression top(Object output, Sort... sortBy)
      Returns the top element within a group according to the specified sort order.
      Parameters:
      output - the expression listing the fields to use
      sortBy - the sort order
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $top
    • topN

      public static Expression topN(Object n, Object output, Sort... sortBy)
      Returns an aggregation of the top n elements within a group, according to the specified sort order. If the group contains fewer than n elements, $topN returns all elements in the group.
      Parameters:
      n - the number of results per group and has to be a positive integral expression that is either a constant or depends on the _id value for $group
      output - the expression listing the fields to use
      sortBy - the sort order
      Returns:
      the expression
      Since:
      2.3
      Since server release
      5.2
      MongoDB documentation
      Aggregration Expression: $topN