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"
}