Aggregate Documents

POST /action/aggregate

Run an aggregation pipeline.

Body

  • dataSource string Required

    The name of a linked MongoDB Atlas data source. This is commonly "mongodb-atlas" though it may be different in your App if you chose a different name when you created the data source.

  • database string Required

    The name of a database in the specified data source.

  • collection string Required

    The name of a collection in the specified database.

  • pipeline array[object] Required

    An array of aggregation stages.

    A MongoDB aggregation stage. For a list of all aggregation stages that the Data API supports, see Aggregation Pipeline Stage Availability.

    A MongoDB aggregation stage. For a list of all aggregation stages that the Data API supports, see Aggregation Pipeline Stage Availability.

Body

  • dataSource string Required

    The name of a linked MongoDB Atlas data source. This is commonly "mongodb-atlas" though it may be different in your App if you chose a different name when you created the data source.

  • database string Required

    The name of a database in the specified data source.

  • collection string Required

    The name of a collection in the specified database.

  • pipeline array[object] Required

    An array of aggregation stages.

    A MongoDB aggregation stage. For a list of all aggregation stages that the Data API supports, see Aggregation Pipeline Stage Availability.

    A MongoDB aggregation stage. For a list of all aggregation stages that the Data API supports, see Aggregation Pipeline Stage Availability.

Responses

  • Success

    Hide response attribute Show response attribute object
    • documents array[object] Required

      An array that contains the result set of the aggregation.

      A document included in the result set of the aggregation.

      A document included in the result set of the aggregation.

    Hide response attribute Show response attribute object
    • documents array[object] Required

      An array that contains the result set of the aggregation.

      A document included in the result set of the aggregation.

      A document included in the result set of the aggregation.

  • 400 application/json

    The request was malformed or incomplete.

    One of:
  • 401 application/json

    The authenticated user does not have permission to access this endpoint.

    Hide response attributes Show response attributes object

    Indicates that no user matched the provided authentication credentials.

    • error string

      A message that describes the error.

      Value is invalid session: error finding user for endpoint.

    • error_code string

      The error type.

      Value is InvalidSession.

POST /action/aggregate
curl -s "https://data.mongodb-api.com/app/$CLIENT_APP_ID/endpoint/data/v1/action/aggregate" \ -X POST \ -H "apiKey: $API_KEY" \ -H 'Content-Type: application/ejson' \ -H "Accept: application/json" \ -d '{ "dataSource": "mongodb-atlas", "database": "learn-data-api", "collection": "tasks", "pipeline": [ { "$match": { "status": "complete" } }, { "$group": { "_id": "$status", "count": { "$sum": 1 }, "tasks": { "$push": "$text" } } }, { "$sort": { "count": -1 } } ] }' 
Request example
[ { "$groupBy": { "_id": "$status", "count": { "$sum": 1 }, "tasks": { "$push": "$text" } } }, { "$sort": { "count": 1 } } ]
Request example
[ { "$groupBy": { "_id": "$status", "count": { "$sum": 1 }, "tasks": { "$push": "$text" } } }, { "$sort": { "count": 1 } } ]
Response examples (200)
[ { "$groupBy": { "_id": "$status", "count": { "$sum": 1 }, "tasks": { "$push": "$text" } } }, { "$sort": { "count": 1 } } ]
Response examples (200)
[ { "$groupBy": { "_id": "$status", "count": { "$sum": 1 }, "tasks": { "$push": "$text" } } }, { "$sort": { "count": 1 } } ]
Response examples (400)
{ "error": "no authentication methods were specified", "error_code": "InvalidParameter", "link": "string" }
{ "error": "must specify some form of authentication (either email+password, api-key, or jwt) in the request header or body", "error_code": "MissingParameter", "link": "string" }
Response examples (401)
{ "error": "invalid session: error finding user for endpoint", "error_code": "InvalidSession", "link": "string" }