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
- Protected
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(classOf[java.lang.CloneNotSupportedException]) @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: AnyRef): 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[_ <: AnyRef]
- 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(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
This is the documentation for the MongoDB Scala driver.
Driver structure
The mongodb scala driver.
To get started you need a MongoClient instance, either from a connection string or via a org.mongodb.scala.MongoClientSettings.
Notable packages include: