Class Aggregates

java.lang.Object
com.mongodb.client.model.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

    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
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • 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:
      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:
      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:
      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:
      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:
      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