Packages

o

org.mongodb.scala.model

WindowedComputations

object WindowedComputations

Builders for windowed computations used in the $setWindowFields pipeline stage of an aggregation pipeline. Each windowed computation is a triple:

  • A window function. Some functions require documents in a window to be sorted (see sortBy in Aggregates.setWindowFields).
  • An optional window, a.k.a. frame. Specifying null window is equivalent to specifying an unbounded window, i.e., a window with both ends specified as UNBOUNDED. Some window functions require to specify an explicit unbounded window instead of specifying null.
  • A path to an output field to be computed by the window function over the window.

A windowed computation is similar to an accumulator but does not result in folding documents constituting the window into a single document.

Annotations
@Beta()
Since

4.3

Note

Requires MongoDB 5.0 or greater.

See also

Field paths

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. WindowedComputations
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addToSet[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation that adds the evaluation results of the expression over the window to a BSON Array and excludes duplicates.

    Builds a computation that adds the evaluation results of the expression over the window to a BSON Array and excludes duplicates. Order within the array is not specified.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $addToSet

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def avg[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the average of the evaluation results of the expression over the window.

    Builds a computation of the average of the evaluation results of the expression over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $avg

  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  8. def count(path: String, window: Window): WindowedComputation

    Builds a computation of the number of documents in the window.

    Builds a computation of the number of documents in the window.

    path

    The output field path.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $count

  9. def covariancePop[TExpression](path: String, expression1: TExpression, expression2: TExpression, window: Window): WindowedComputation

    Builds a computation of the population covariance between the evaluation results of the two expressions over the window.

    Builds a computation of the population covariance between the evaluation results of the two expressions over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression1

    The first expression.

    expression2

    The second expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $covariancePop

  10. def covarianceSamp[TExpression](path: String, expression1: TExpression, expression2: TExpression, window: Window): WindowedComputation

    Builds a computation of the sample covariance between the evaluation results of the two expressions over the window.

    Builds a computation of the sample covariance between the evaluation results of the two expressions over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression1

    The first expression.

    expression2

    The second expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $covarianceSamp

  11. def denseRank(path: String): WindowedComputation

    Builds a computation of the dense rank of each document in its partition.

    Builds a computation of the dense rank of each document in its partition. Documents with the same value(s) of the sortBy fields result in the same ranking but do not result in gaps in the returned ranks. For example, a partition with the sequence [1, 3, 3, 5] representing the values of the single sortBy field produces the following sequence of rank values: [1, 2, 2, 3].

    Sorting is required.

    path

    The output field path.

    returns

    The constructed windowed computation.

    See also

    $denseRank

  12. def derivative[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the time derivative by subtracting the evaluation result of the expression against the last document and the first document in the window and dividing it by the difference in the values of the sortBy field of the respective documents.

    Builds a computation of the time derivative by subtracting the evaluation result of the expression against the last document and the first document in the window and dividing it by the difference in the values of the sortBy field of the respective documents. Other documents in the window have no effect on the computation.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window.

    returns

    The constructed windowed computation.

    See also

    $derivative

  13. def documentNumber(path: String): WindowedComputation

    Builds a computation of the order number of each document in its partition.

    Builds a computation of the order number of each document in its partition.

    Sorting is required.

    path

    The output field path.

    returns

    The constructed windowed computation.

    See also

    $documentNumber

  14. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  16. def expMovingAvg[TExpression](path: String, expression: TExpression, alpha: Double): WindowedComputation

    Builds a computation of the exponential moving average of the evaluation results of the expression over the half-bounded window [UNBOUNDED, CURRENT], with alpha representing the degree of weighting decrease.

    Builds a computation of the exponential moving average of the evaluation results of the expression over the half-bounded window [UNBOUNDED, CURRENT], with alpha representing the degree of weighting decrease.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    alpha

    A parameter specifying how fast weighting decrease happens. A higher alpha discounts older observations faster. Must belong to the interval (0, 1).

    returns

    The constructed windowed computation.

    See also

    $expMovingAvg

  17. def expMovingAvg[TExpression](path: String, expression: TExpression, n: Int): WindowedComputation

    Builds a computation of the exponential moving average of the evaluation results of the expression over a window that includes n - 1 documents preceding the current document and the current document, with more weight on documents closer to the current one.

    Builds a computation of the exponential moving average of the evaluation results of the expression over a window that includes n - 1 documents preceding the current document and the current document, with more weight on documents closer to the current one.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    n

    Must be positive.

    returns

    The constructed windowed computation.

    See also

    $expMovingAvg

  18. def first[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the evaluation result of the expression against the first document in the window.

    Builds a computation of the evaluation result of the expression against the first document in the window.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $first

  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. def integral[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the approximate integral of a function that maps values of the sortBy field to evaluation results of the expression against the same document.

    Builds a computation of the approximate integral of a function that maps values of the sortBy field to evaluation results of the expression against the same document. The limits of integration match the window bounds. The approximation is done by using the trapezoidal rule.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window.

    returns

    The constructed windowed computation.

    See also

    $integral

  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. def last[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the evaluation result of the expression against the last document in the window.

    Builds a computation of the evaluation result of the expression against the last document in the window.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $last

  24. def max[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the highest of the evaluation results of the expression over the window.

    Builds a computation of the highest of the evaluation results of the expression over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $max

  25. def min[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the lowest of the evaluation results of the expression over the window.

    Builds a computation of the lowest of the evaluation results of the expression over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $min

  26. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  28. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  29. def of(windowedComputation: BsonField): WindowedComputation

    Creates a windowed computation from a document field in situations when there is no builder method that better satisfies your needs.

    Creates a windowed computation from a document field in situations when there is no builder method that better satisfies your needs. This method cannot be used to validate the document field syntax.

    val pastWeek: Window = Windows.timeRange(-1, MongoTimeUnit.WEEK, Windows.Bound.CURRENT)
    val pastWeekExpenses1: WindowedComputation = WindowedComputations.sum("pastWeekExpenses", "$expenses", pastWeek)
    val pastWeekExpenses2: WindowedComputation = WindowedComputations.of(
        BsonField("pastWeekExpenses", Document("$sum" -> "$expenses",
            "window" -> pastWeek.toBsonDocument)))
    windowedComputation

    A document field representing the required windowed computation.

    returns

    The constructed windowed computation.

  30. def push[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation that adds the evaluation results of the expression over the window to a BSON Array.

    Builds a computation that adds the evaluation results of the expression over the window to a BSON Array. Order within the array is guaranteed if sortBy is specified.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $push

  31. def rank(path: String): WindowedComputation

    Builds a computation of the rank of each document in its partition.

    Builds a computation of the rank of each document in its partition. Documents with the same value(s) of the sortBy fields result in the same ranking and result in gaps in the returned ranks. For example, a partition with the sequence [1, 3, 3, 5] representing the values of the single sortBy field produces the following sequence of rank values: [1, 2, 2, 4].

    Sorting is required.

    path

    The output field path.

    returns

    The constructed windowed computation.

    See also

    $rank

  32. def shift[TExpression](path: String, expression: TExpression, defaultExpression: TExpression, by: Int): WindowedComputation

    Builds a computation of the evaluation result of the expression for the document whose position is shifted by the given amount relative to the current document.

    Builds a computation of the evaluation result of the expression for the document whose position is shifted by the given amount relative to the current document. If the shifted document is outside of the partition containing the current document, then the defaultExpression is used instead of the expression.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    defaultExpression

    The default expression. If null, then the default expression is evaluated to BSON Null. Must evaluate to a constant value.

    by

    The shift specified similarly to rules for window bounds:

    • 0 means the current document;
    • a negative value refers to the document preceding the current one;
    • a positive value refers to the document following the current one.
    returns

    The constructed windowed computation.

    See also

    $shift

  33. def stdDevPop[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the population standard deviation of the evaluation results of the expression over the window.

    Builds a computation of the population standard deviation of the evaluation results of the expression over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $stdDevPop

  34. def stdDevSamp[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the sample standard deviation of the evaluation results of the expression over the window.

    Builds a computation of the sample standard deviation of the evaluation results of the expression over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $stdDevSamp

  35. def sum[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation

    Builds a computation of the sum of the evaluation results of the expression over the window.

    Builds a computation of the sum of the evaluation results of the expression over the window.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window. May be null.

    returns

    The constructed windowed computation.

    See also

    $sum

  36. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  37. def timeDerivative[TExpression](path: String, expression: TExpression, window: Window, unit: MongoTimeUnit): WindowedComputation

    Builds a computation of the time derivative by subtracting the evaluation result of the expression against the last document and the first document in the window and dividing it by the difference in the BSON Date values of the sortBy field of the respective documents.

    Builds a computation of the time derivative by subtracting the evaluation result of the expression against the last document and the first document in the window and dividing it by the difference in the BSON Date values of the sortBy field of the respective documents. Other documents in the window have no effect on the computation.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window.

    unit

    The desired time unit for the divisor. Allowed values are: WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND.

    returns

    The constructed windowed computation.

    See also

    $derivative

  38. def timeIntegral[TExpression](path: String, expression: TExpression, window: Window, unit: MongoTimeUnit): WindowedComputation

    Builds a computation of the approximate integral of a function that maps BSON Date values of the sortBy field to evaluation results of the expression against the same document.

    Builds a computation of the approximate integral of a function that maps BSON Date values of the sortBy field to evaluation results of the expression against the same document. The limits of integration match the window bounds. The approximation is done by using the trapezoidal rule.

    Sorting is required.

    TExpression

    The expression type.

    path

    The output field path.

    expression

    The expression.

    window

    The window.

    unit

    The desired time unit for the divisor. Allowed values are: WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND.

    returns

    The constructed windowed computation.

    See also

    $integral

  39. def toString(): String
    Definition Classes
    AnyRef → Any
  40. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  41. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  42. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped