Class Bucket
- java.lang.Object
-
- dev.morphia.aggregation.stages.Stage
-
- dev.morphia.aggregation.stages.Bucket
-
public class Bucket extends Stage
Categorizes incoming documents into groups, called buckets, based on a specified expression and bucket boundaries.Each bucket is represented as a document in the output. The document for each bucket contains an _id field, whose value specifies the inclusive lower bound of the bucket and a count field that contains the number of documents in the bucket. The count field is included by default when the output is not specified.
$bucket only produces output documents for buckets that contain at least one input document.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Bucket()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Bucket
boundaries(dev.morphia.aggregation.expressions.impls.Expression... boundaries)
An array of values based on the groupBy expression that specify the boundaries for each bucket.static Bucket
bucket()
Creates a new bucket stageBucket
defaultValue(Object defaultValue)
Optional.dev.morphia.aggregation.expressions.impls.ExpressionList
getBoundaries()
Object
getDefaultValue()
dev.morphia.aggregation.expressions.impls.Expression
getGroupBy()
dev.morphia.aggregation.expressions.impls.DocumentExpression
getOutput()
Bucket
groupBy(dev.morphia.aggregation.expressions.impls.Expression groupBy)
An expression to group documents by.static Bucket
of()
Deprecated, for removal: This API element is subject to removal in a future version.usebucket()
Bucket
outputField(String name, dev.morphia.aggregation.expressions.impls.Expression value)
Adds a field to the document that specifies the fields to include in the output documents in addition to the _id field.-
Methods inherited from class dev.morphia.aggregation.stages.Stage
aggregation, stageName
-
-
-
-
Method Detail
-
bucket
public static Bucket bucket()
Creates a new bucket stage- Returns:
- the new stage
- Since:
- 2.2
-
of
@Deprecated(forRemoval=true) public static Bucket of()
Deprecated, for removal: This API element is subject to removal in a future version.usebucket()
Creates a new bucket stage- Returns:
- the new stage
-
boundaries
public Bucket boundaries(dev.morphia.aggregation.expressions.impls.Expression... boundaries)
An array of values based on the groupBy expression that specify the boundaries for each bucket. Each adjacent pair of values acts as the inclusive lower boundary and the exclusive upper boundary for the bucket. You must specify at least two boundaries.The specified values must be in ascending order and all of the same type.
- Parameters:
boundaries
- the boundaries- Returns:
- this
-
defaultValue
public Bucket defaultValue(Object defaultValue)
Optional. A literal that specifies the _id of an additional bucket that contains all documents whose groupBy expression result does not fall into a bucket specified by boundaries.If unspecified, each input document must resolve the groupBy expression to a value within one of the bucket ranges specified by boundaries or the operation throws an error.
- Parameters:
defaultValue
- the default value- Returns:
- this
-
getBoundaries
@MorphiaInternal public dev.morphia.aggregation.expressions.impls.ExpressionList getBoundaries()
- Returns:
- the boundaries
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getDefaultValue
@MorphiaInternal public Object getDefaultValue()
- Returns:
- the default value
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getGroupBy
@MorphiaInternal public dev.morphia.aggregation.expressions.impls.Expression getGroupBy()
- Returns:
- the group by expression
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getOutput
@Nullable @MorphiaInternal public dev.morphia.aggregation.expressions.impls.DocumentExpression getOutput()
- Returns:
- the output document
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
groupBy
public Bucket groupBy(dev.morphia.aggregation.expressions.impls.Expression groupBy)
An expression to group documents by. To specify a field path, prefix the field name with a dollar sign $ and enclose it in quotes.Unless $bucket includes a default specification, each input document must resolve the groupBy field path or expression to a value that falls within one of the ranges specified by the boundaries.
- Parameters:
groupBy
- the grouping expression- Returns:
- this
-
outputField
public Bucket outputField(String name, dev.morphia.aggregation.expressions.impls.Expression value)
Adds a field to the document that specifies the fields to include in the output documents in addition to the _id field. To specify the field to include, you must use accumulator expressions.- Parameters:
name
- the new field namevalue
- the value expression- Returns:
- this
-
-