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 specifyingnull
. - 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
- Alphabetic
- By Inheritance
- WindowedComputations
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addToSet[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation
Builds a computation that adds the evaluation results of the
expression
over thewindow
to a BSONArray
and excludes duplicates.Builds a computation that adds the evaluation results of the
expression
over thewindow
to a BSONArray
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
avg[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation
Builds a computation of the average of the evaluation results of the
expression
over thewindow
.Builds a computation of the average of the evaluation results of the
expression
over thewindow
.- 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
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
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
-
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
-
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
-
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
-
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 thewindow
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 thewindow
and dividing it by the difference in the values of the sortBy field of the respective documents. Other documents in thewindow
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
-
def
documentNumber(path: String): WindowedComputation
Builds a computation of the order number of each document in its partition.
- path
The output field path.
- returns
The constructed windowed computation.
- See also
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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]
, withalpha
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]
, withalpha
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
-
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 includesn
- 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 includesn
- 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
-
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 thewindow
. -
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
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 thewindow
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
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
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 thewindow
. -
def
max[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation
Builds a computation of the highest of the evaluation results of the
expression
over thewindow
.Builds a computation of the highest of the evaluation results of the
expression
over thewindow
.- 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
-
def
min[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation
Builds a computation of the lowest of the evaluation results of the
expression
over thewindow
.Builds a computation of the lowest of the evaluation results of the
expression
over thewindow
.- 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
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
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.
-
def
push[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation
Builds a computation that adds the evaluation results of the
expression
over thewindow
to a BSONArray
.Builds a computation that adds the evaluation results of the
expression
over thewindow
to a BSONArray
. 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
-
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
-
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 thedefaultExpression
is used instead of theexpression
.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 BSONNull
. 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
-
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 thewindow
.Builds a computation of the population standard deviation of the evaluation results of the
expression
over thewindow
.- 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
-
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 thewindow
.Builds a computation of the sample standard deviation of the evaluation results of the
expression
over thewindow
.- 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
-
def
sum[TExpression](path: String, expression: TExpression, window: Window): WindowedComputation
Builds a computation of the sum of the evaluation results of the
expression
over thewindow
.Builds a computation of the sum of the evaluation results of the
expression
over thewindow
.- 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
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
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 thewindow
and dividing it by the difference in the BSONDate
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 thewindow
and dividing it by the difference in the BSONDate
values of the sortBy field of the respective documents. Other documents in thewindow
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
-
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 theexpression
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 theexpression
against the same document. The limits of integration match thewindow
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
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated