Class Aggregates


  • public final class Aggregates
    extends Object
    Builders for aggregation pipeline stages.
    Since:
    3.1
    MongoDB documentation
    Aggregation pipeline
    Since server release
    2.2
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static Bson addFields​(Field<?>... fields)
      Creates an $addFields pipeline stage
      static Bson addFields​(List<Field<?>> fields)
      Creates an $addFields pipeline stage
      static <TExpression,​Boundary>
      Bson
      bucket​(TExpression groupBy, List<Boundary> boundaries)
      Creates a $bucket pipeline stage
      static <TExpression,​TBoundary>
      Bson
      bucket​(TExpression groupBy, List<TBoundary> boundaries, BucketOptions options)
      Creates a $bucket pipeline stage
      static <TExpression>
      Bson
      bucketAuto​(TExpression groupBy, int buckets)
      Creates a $bucketAuto pipeline stage
      static <TExpression>
      Bson
      bucketAuto​(TExpression groupBy, int buckets, BucketAutoOptions options)
      Creates a $bucketAuto pipeline stage
      static Bson count()
      Creates a $count pipeline stage using the field name "count" to store the result
      static Bson count​(String field)
      Creates a $count pipeline stage using the named field to store the result
      static Bson facet​(Facet... facets)
      Creates a facet pipeline stage
      static Bson facet​(List<Facet> facets)
      Creates a facet pipeline stage
      static <TExpression>
      Bson
      graphLookup​(String from, TExpression startWith, String connectFromField, String connectToField, String as)
      Creates a graphLookup pipeline stage for the specified filter
      static <TExpression>
      Bson
      graphLookup​(String from, TExpression startWith, String connectFromField, String connectToField, String as, GraphLookupOptions options)
      Creates a graphLookup pipeline stage for the specified filter
      static <TExpression>
      Bson
      group​(TExpression id, BsonField... fieldAccumulators)
      Creates a $group pipeline stage for the specified filter
      static <TExpression>
      Bson
      group​(TExpression id, List<BsonField> fieldAccumulators)
      Creates a $group pipeline stage for the specified filter
      static Bson limit​(int limit)
      Creates a $limit pipeline stage for the specified filter
      static Bson lookup​(String from, String localField, String foreignField, String as)
      Creates a $lookup pipeline stage, joining the current collection with the one specified in from using equality match between the local field and the foreign field
      static Bson lookup​(String from, List<? extends Bson> pipeline, String as)
      Creates a $lookup pipeline stage, joining the current collection with the one specified in from using the given pipeline
      static <TExpression>
      Bson
      lookup​(String from, List<Variable<TExpression>> let, List<? extends Bson> pipeline, String as)
      Creates a $lookup pipeline stage, joining the current collection with the one specified in from using the given pipeline
      static Bson match​(Bson filter)
      Creates a $match pipeline stage for the specified filter
      static Bson merge​(MongoNamespace namespace)
      Creates a $merge pipeline stage that merges into the specified namespace
      static Bson merge​(MongoNamespace namespace, MergeOptions options)
      Creates a $merge pipeline stage that merges into the specified namespace using the specified options.
      static Bson merge​(String collectionName)
      Creates a $merge pipeline stage that merges into the specified collection
      static Bson merge​(String collectionName, MergeOptions options)
      Creates a $merge pipeline stage that merges into the specified collection using the specified options.
      static Bson out​(String collectionName)
      Creates a $out pipeline stage that writes into the specified collection
      static Bson out​(String databaseName, String collectionName)
      Creates a $out pipeline stage that supports outputting to a different database.
      static Bson out​(Bson destination)
      Creates a $out pipeline stage that writes out to the specified destination
      static Bson project​(Bson projection)
      Creates a $project pipeline stage for the specified projection
      static <TExpression>
      Bson
      replaceRoot​(TExpression value)
      Creates a $replaceRoot pipeline stage
      static <TExpression>
      Bson
      replaceWith​(TExpression value)
      Creates a $replaceRoot pipeline stage
      static Bson sample​(int size)
      Creates a $sample pipeline stage with the specified sample size
      static Bson set​(Field<?>... fields)
      Creates a $set pipeline stage for the specified projection
      static Bson set​(List<Field<?>> fields)
      Creates a $set pipeline stage for the specified projection
      static <TExpression>
      Bson
      setWindowFields​(TExpression partitionBy, Bson sortBy, WindowedComputation... output)
      Creates a $setWindowFields pipeline stage, which allows using window operators.
      static <TExpression>
      Bson
      setWindowFields​(TExpression partitionBy, Bson sortBy, List<WindowedComputation> output)
      Creates a $setWindowFields pipeline stage, which allows using window operators.
      static Bson skip​(int skip)
      Creates a $skip pipeline stage
      static Bson sort​(Bson sort)
      Creates a $sort pipeline stage for the specified sort specification
      static <TExpression>
      Bson
      sortByCount​(TExpression filter)
      Creates a $sortByCount pipeline stage for the specified filter
      static Bson unionWith​(String collection, List<? extends Bson> pipeline)
      Creates a $unionWith pipeline stage.
      static Bson unwind​(String fieldName)
      Creates a $unwind pipeline stage for the specified field name, which must be prefixed by a '$' sign.
      static Bson unwind​(String fieldName, UnwindOptions unwindOptions)
      Creates a $unwind pipeline stage for the specified field name, which must be prefixed by a '$' sign.
    • Method Detail

      • addFields

        public static Bson addFields​(Field<?>... fields)
        Creates an $addFields pipeline stage
        Parameters:
        fields - the fields to add
        Returns:
        the $addFields pipeline stage
        Since:
        3.4
        MongoDB documentation
        $addFields
        Since server release
        3.4
      • addFields

        public static Bson addFields​(List<Field<?>> fields)
        Creates an $addFields pipeline stage
        Parameters:
        fields - the fields to add
        Returns:
        the $addFields pipeline stage
        Since:
        3.4
        MongoDB documentation
        $addFields
        Since server release
        3.4
      • set

        public static Bson set​(Field<?>... fields)
        Creates a $set pipeline stage for the specified projection
        Parameters:
        fields - the fields to add
        Returns:
        the $set pipeline stage
        Since:
        4.3
        See Also:
        Projections
        MongoDB documentation
        $set
        Since server release
        4.2
      • set

        public static Bson set​(List<Field<?>> fields)
        Creates a $set pipeline stage for the specified projection
        Parameters:
        fields - the fields to add
        Returns:
        the $set pipeline stage
        Since:
        4.3
        See Also:
        Projections
        MongoDB documentation
        $set
        Since server release
        4.2
      • bucket

        public static <TExpression,​Boundary> Bson bucket​(TExpression groupBy,
                                                               List<Boundary> boundaries)
        Creates a $bucket pipeline stage
        Type Parameters:
        TExpression - the groupBy expression type
        Boundary - the boundary type
        Parameters:
        groupBy - the criteria to group By
        boundaries - the boundaries of the buckets
        Returns:
        the $bucket pipeline stage
        Since:
        3.4
        MongoDB documentation
        $bucket
        Since server release
        3.4
      • bucket

        public static <TExpression,​TBoundary> Bson bucket​(TExpression groupBy,
                                                                List<TBoundary> boundaries,
                                                                BucketOptions options)
        Creates a $bucket pipeline stage
        Type Parameters:
        TExpression - the groupBy expression type
        TBoundary - the boundary type
        Parameters:
        groupBy - the criteria to group By
        boundaries - the boundaries of the buckets
        options - the optional values for the $bucket stage
        Returns:
        the $bucket pipeline stage
        Since:
        3.4
        MongoDB documentation
        $bucket
        Since server release
        3.4
      • bucketAuto

        public static <TExpression> Bson bucketAuto​(TExpression groupBy,
                                                    int buckets)
        Creates a $bucketAuto pipeline stage
        Type Parameters:
        TExpression - the groupBy expression type
        Parameters:
        groupBy - the criteria to group By
        buckets - the number of the buckets
        Returns:
        the $bucketAuto pipeline stage
        Since:
        3.4
        MongoDB documentation
        $bucketAuto
        Since server release
        3.4
      • bucketAuto

        public static <TExpression> Bson bucketAuto​(TExpression groupBy,
                                                    int buckets,
                                                    BucketAutoOptions options)
        Creates a $bucketAuto pipeline stage
        Type Parameters:
        TExpression - the groupBy expression type
        Parameters:
        groupBy - the criteria to group By
        buckets - the number of the buckets
        options - the optional values for the $bucketAuto stage
        Returns:
        the $bucketAuto pipeline stage
        Since:
        3.4
        MongoDB documentation
        $bucketAuto
        Since server release
        3.4
      • count

        public static Bson count()
        Creates a $count pipeline stage using the field name "count" to store the result
        Returns:
        the $count pipeline stage
        Since:
        3.4
        MongoDB documentation
        $count
        Since server release
        3.4
      • count

        public static Bson count​(String field)
        Creates a $count pipeline stage using the named field to store the result
        Parameters:
        field - the field in which to store the count
        Returns:
        the $count pipeline stage
        Since:
        3.4
        MongoDB documentation
        $count
        Since server release
        3.4
      • match

        public static Bson match​(Bson filter)
        Creates a $match pipeline stage for the specified filter
        Parameters:
        filter - the filter to match
        Returns:
        the $match pipeline stage
        See Also:
        Filters
        MongoDB documentation
        $match
      • project

        public static Bson project​(Bson projection)
        Creates a $project pipeline stage for the specified projection
        Parameters:
        projection - the projection
        Returns:
        the $project pipeline stage
        See Also:
        Projections
        MongoDB documentation
        $project
      • sort

        public static Bson sort​(Bson sort)
        Creates a $sort pipeline stage for the specified sort specification
        Parameters:
        sort - the sort specification
        Returns:
        the $sort pipeline stage
        See Also:
        Sorts
        MongoDB documentation
        $sort
      • sortByCount

        public static <TExpression> Bson sortByCount​(TExpression filter)
        Creates a $sortByCount pipeline stage for the specified filter
        Type Parameters:
        TExpression - the expression type
        Parameters:
        filter - the filter specification
        Returns:
        the $sortByCount pipeline stage
        Since:
        3.4
        MongoDB documentation
        $sortByCount
        Since server release
        3.4
      • skip

        public static Bson skip​(int skip)
        Creates a $skip pipeline stage
        Parameters:
        skip - the number of documents to skip
        Returns:
        the $skip pipeline stage
        MongoDB documentation
        $skip
      • limit

        public static Bson limit​(int limit)
        Creates a $limit pipeline stage for the specified filter
        Parameters:
        limit - the limit
        Returns:
        the $limit pipeline stage
        MongoDB documentation
        $limit
      • lookup

        public static Bson lookup​(String from,
                                  String localField,
                                  String foreignField,
                                  String as)
        Creates a $lookup pipeline stage, joining the current collection with the one specified in from using equality match between the local field and the foreign field
        Parameters:
        from - the name of the collection in the same database to perform the join with.
        localField - the field from the local collection to match values against.
        foreignField - the field in the from collection to match values against.
        as - the name of the new array field to add to the input documents.
        Returns:
        the $lookup pipeline stage
        Since:
        3.2
        MongoDB documentation
        $lookup
        Since server release
        3.2
      • lookup

        public static Bson lookup​(String from,
                                  List<? extends Bson> pipeline,
                                  String as)
        Creates a $lookup pipeline stage, joining the current collection with the one specified in from using the given pipeline
        Parameters:
        from - the name of the collection in the same database to perform the join with.
        pipeline - the pipeline to run on the joined collection.
        as - the name of the new array field to add to the input documents.
        Returns:
        the $lookup pipeline stage
        Since:
        3.7
        MongoDB documentation
        $lookup
        Since server release
        3.6
      • lookup

        public static <TExpression> Bson lookup​(String from,
                                                @Nullable
                                                List<Variable<TExpression>> let,
                                                List<? extends Bson> pipeline,
                                                String as)
        Creates a $lookup pipeline stage, joining the current collection with the one specified in from using the given pipeline
        Type Parameters:
        TExpression - the Variable value expression type
        Parameters:
        from - the name of the collection in the same database to perform the join with.
        let - the variables to use in the pipeline field stages.
        pipeline - the pipeline to run on the joined collection.
        as - the name of the new array field to add to the input documents.
        Returns:
        the $lookup pipeline stage
        Since:
        3.7
        MongoDB documentation
        $lookup
        Since server release
        3.6
      • facet

        public static Bson facet​(List<Facet> facets)
        Creates a facet pipeline stage
        Parameters:
        facets - the facets to use
        Returns:
        the new pipeline stage
        Since:
        3.4
        MongoDB documentation
        $facet
        Since server release
        3.4
      • facet

        public static Bson facet​(Facet... facets)
        Creates a facet pipeline stage
        Parameters:
        facets - the facets to use
        Returns:
        the new pipeline stage
        Since:
        3.4
        MongoDB documentation
        $facet
        Since server release
        3.4
      • graphLookup

        public static <TExpression> Bson graphLookup​(String from,
                                                     TExpression startWith,
                                                     String connectFromField,
                                                     String connectToField,
                                                     String as)
        Creates a graphLookup pipeline stage for the specified filter
        Type Parameters:
        TExpression - the expression type
        Parameters:
        from - the collection to query
        startWith - the expression to start the graph lookup with
        connectFromField - the from field
        connectToField - the to field
        as - name of field in output document
        Returns:
        the $graphLookup pipeline stage
        Since:
        3.4
        MongoDB documentation
        $graphLookup
        Since server release
        3.4
      • graphLookup

        public static <TExpression> Bson graphLookup​(String from,
                                                     TExpression startWith,
                                                     String connectFromField,
                                                     String connectToField,
                                                     String as,
                                                     GraphLookupOptions options)
        Creates a graphLookup pipeline stage for the specified filter
        Type Parameters:
        TExpression - the expression type
        Parameters:
        from - the collection to query
        startWith - the expression to start the graph lookup with
        connectFromField - the from field
        connectToField - the to field
        as - name of field in output document
        options - optional values for the graphLookup
        Returns:
        the $graphLookup pipeline stage
        Since:
        3.4
        MongoDB documentation
        $graphLookup
        Since server release
        3.4
      • group

        public static <TExpression> Bson group​(@Nullable
                                               TExpression id,
                                               BsonField... fieldAccumulators)
        Creates a $group pipeline stage for the specified filter
        Type Parameters:
        TExpression - the expression type
        Parameters:
        id - the id expression for the group, which may be null
        fieldAccumulators - zero or more field accumulator pairs
        Returns:
        the $group pipeline stage
        MongoDB documentation
        $group
        Expressions
      • group

        public static <TExpression> Bson group​(@Nullable
                                               TExpression id,
                                               List<BsonField> fieldAccumulators)
        Creates a $group pipeline stage for the specified filter
        Type Parameters:
        TExpression - the expression type
        Parameters:
        id - the id expression for the group, which may be null
        fieldAccumulators - zero or more field accumulator pairs
        Returns:
        the $group pipeline stage
        MongoDB documentation
        $group
        Expressions
      • unionWith

        public static Bson unionWith​(String collection,
                                     List<? extends Bson> pipeline)
        Creates a $unionWith pipeline stage.
        Parameters:
        collection - the name of the collection in the same database to perform the union with.
        pipeline - the pipeline to run on the union.
        Returns:
        the $unionWith pipeline stage
        Since:
        4.1
        MongoDB documentation
        $unionWith
        Since server release
        4.4
      • unwind

        public static Bson unwind​(String fieldName)
        Creates a $unwind pipeline stage for the specified field name, which must be prefixed by a '$' sign.
        Parameters:
        fieldName - the field name, prefixed by a '$' sign
        Returns:
        the $unwind pipeline stage
        MongoDB documentation
        $unwind
      • unwind

        public static Bson unwind​(String fieldName,
                                  UnwindOptions unwindOptions)
        Creates a $unwind pipeline stage for the specified field name, which must be prefixed by a '$' sign.
        Parameters:
        fieldName - the field name, prefixed by a '$' sign
        unwindOptions - options for the unwind pipeline stage
        Returns:
        the $unwind pipeline stage
        Since:
        3.2
        MongoDB documentation
        $unwind
        Since server release
        3.2
      • out

        public static Bson out​(String collectionName)
        Creates a $out pipeline stage that writes into the specified collection
        Parameters:
        collectionName - the collection name
        Returns:
        the $out pipeline stage
        MongoDB documentation
        $out
      • out

        public static Bson out​(String databaseName,
                               String collectionName)
        Creates a $out pipeline stage that supports outputting to a different database.
        Parameters:
        databaseName - the database name
        collectionName - the collection name
        Returns:
        the $out pipeline stage
        Since:
        4.1
        MongoDB documentation
        $out
        Since server release
        4.4
      • out

        public static Bson out​(Bson destination)
        Creates a $out pipeline stage that writes out to the specified destination
        Parameters:
        destination - the destination details
        Returns:
        the $out pipeline stage
        Since:
        4.1
        MongoDB documentation
        $out
      • merge

        public static Bson merge​(String collectionName)
        Creates a $merge pipeline stage that merges into the specified collection
        Parameters:
        collectionName - the name of the collection to merge into
        Returns:
        the $merge pipeline stage
        Since:
        3.11
        MongoDB documentation
        $merge
        Since server release
        4.2
      • merge

        public static Bson merge​(MongoNamespace namespace)
        Creates a $merge pipeline stage that merges into the specified namespace
        Parameters:
        namespace - the namespace to merge into
        Returns:
        the $merge pipeline stage
        Since:
        3.11
        MongoDB documentation
        $merge
        Since server release
        4.2
      • merge

        public static Bson merge​(String collectionName,
                                 MergeOptions options)
        Creates a $merge pipeline stage that merges into the specified collection using the specified options.
        Parameters:
        collectionName - the name of the collection to merge into
        options - the merge options
        Returns:
        the $merge pipeline stage
        Since:
        3.11
        MongoDB documentation
        $merge
        Since server release
        4.2
      • merge

        public static Bson merge​(MongoNamespace namespace,
                                 MergeOptions options)
        Creates a $merge pipeline stage that merges into the specified namespace using the specified options.
        Parameters:
        namespace - the namespace to merge into
        options - the merge options
        Returns:
        the $merge pipeline stage
        Since:
        3.11
        MongoDB documentation
        $merge
        Since server release
        4.2
      • replaceRoot

        public static <TExpression> Bson replaceRoot​(TExpression value)
        Creates a $replaceRoot pipeline stage
        Type Parameters:
        TExpression - the new root type
        Parameters:
        value - the new root value
        Returns:
        the $replaceRoot pipeline stage
        Since:
        3.4
        MongoDB documentation
        $replaceRoot
        Since server release
        3.4
      • replaceWith

        public static <TExpression> Bson replaceWith​(TExpression value)
        Creates a $replaceRoot pipeline stage

        With $replaceWith, you can promote an embedded document to the top-level. You can also specify a new document as the replacement.

        The $replaceWith is an alias for replaceRoot(Object).

        Type Parameters:
        TExpression - the new root type
        Parameters:
        value - the new root value
        Returns:
        the $replaceRoot pipeline stage
        Since:
        3.11
        MongoDB documentation
        $replaceWith
        Since server release
        4.2
      • sample

        public static Bson sample​(int size)
        Creates a $sample pipeline stage with the specified sample size
        Parameters:
        size - the sample size
        Returns:
        the $sample pipeline stage
        Since:
        3.2
        MongoDB documentation
        $sample
        Since server release
        3.2
      • setWindowFields

        @Beta
        public static <TExpression> Bson setWindowFields​(@Nullable
                                                         TExpression partitionBy,
                                                         @Nullable
                                                         Bson sortBy,
                                                         WindowedComputation... output)
        Creates a $setWindowFields pipeline stage, which allows using window operators. This stage partitions the input documents similarly to the $group pipeline stage, optionally sorts them, computes fields in the documents by computing window functions over windows specified per function, and outputs the documents. The important difference from the $group pipeline stage is that documents belonging to the same partition or window are not folded into a single document.
        Type Parameters:
        TExpression - The partitionBy expression type.
        Parameters:
        partitionBy - Optional partitioning of data specified like id in group(Object, List). If null, then all documents belong to the same partition.
        sortBy - Fields to sort by. The syntax is identical to sort in sort(Bson) (see Sorts). Sorting is required by certain functions and may be required by some windows (see Windows for more details). Sorting is used only for the purpose of computing window functions and does not guarantee ordering of the output documents.
        output - A nonempty array of windowed computations.
        Returns:
        The $setWindowFields pipeline stage.
        Since:
        4.3
        MongoDB documentation
        $setWindowFields
        Since server release
        5.0
      • setWindowFields

        @Beta
        public static <TExpression> Bson setWindowFields​(@Nullable
                                                         TExpression partitionBy,
                                                         @Nullable
                                                         Bson sortBy,
                                                         List<WindowedComputation> output)
        Creates a $setWindowFields pipeline stage, which allows using window operators. This stage partitions the input documents similarly to the $group pipeline stage, optionally sorts them, computes fields in the documents by computing window functions over windows specified per function, and outputs the documents. The important difference from the $group pipeline stage is that documents belonging to the same partition or window are not folded into a single document.
        Type Parameters:
        TExpression - The partitionBy expression type.
        Parameters:
        partitionBy - Optional partitioning of data specified like id in group(Object, List). If null, then all documents belong to the same partition.
        sortBy - Fields to sort by. The syntax is identical to sort in sort(Bson) (see Sorts). Sorting is required by certain functions and may be required by some windows (see Windows for more details). Sorting is used only for the purpose of computing window functions and does not guarantee ordering of the output documents.
        output - A nonempty list of windowed computations.
        Returns:
        The $setWindowFields pipeline stage.
        Since:
        4.3
        MongoDB documentation
        $setWindowFields
        Since server release
        5.0