2.2.0 (latest) 2.0.6 1.34.2 1.33.1 1.32.3 1.31.0 1.30.0 1.29.2 1.28.2 1.26.0 1.25.0 1.24.4 1.23.0 1.22.1 1.21.2 1.19.0 1.18.1 1.17.1 Reference documentation and code samples for the Cloud Datastore Client class AggregationQuery.

Represents an [Aggregation Query](https://cloud.google.com/datastore/docs/aggregation-queries).

Example:

    use Google\Cloud\Datastore\DatastoreClient;
    use Google\Cloud\Datastore\Query\Aggregation;

    $datastore = new DatastoreClient();

    $query = $datastore->query();
    $query->kind('Companies');
    $query->filter('companyName', '=', 'Google');
    $aggregationQuery = $query->aggregation(Aggregation::count()->alias('total'));

    $res = $datastore->runAggregationQuery($aggregationQuery);
    echo $res->get('total');

Example (aggregated using over method):

    use Google\Cloud\Datastore\DatastoreClient;
    use Google\Cloud\Datastore\Query\Aggregation;

    $datastore = new DatastoreClient();

    $query = $datastore->query();
    $query->kind('Companies');
    $query->filter('companyName', '=', 'Google');
    $query->limit(100);
    $aggregationQuery = $datastore->aggregationQuery();
    $aggregationQuery->over($query)->addAggregation(Aggregation::count()->alias('total_upto_100'));

    $res = $datastore->runAggregationQuery($aggregationQuery);
    echo $res->get('total_upto_100');

## Namespace

Google \\ Cloud \\ Datastore \\ Query

## Methods

### __construct

Create an aggregation query.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `query` | `https://docs.cloud.google.com/php/docs/reference/cloud-datastore/latest/Query.QueryInterface|null` |
| `aggregates` | `array` |

### addAggregation

Adds a Query Aggregation.

Accepts an array of properties for aggregation.

Example:


    $query = $datastore->AggregationQuery();
    $query->kind('Companies');
    $query->filter('companyName', '=', 'Google');
    $query->addAggregation(Aggregation::count()->alias('total'));
    echo json_encode($query->queryObject());

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `aggregation` | `https://docs.cloud.google.com/php/docs/reference/cloud-datastore/latest/Query.Aggregation` The Aggregation to be included. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/php/docs/reference/cloud-datastore/latest/Query.AggregationQuery` |   |

### over

Set the Query Projection.

Accepts an array of properties. If set, only these properties will be
returned.

Example:

    $query = $datastore->query();
    $query->kind('Companies');
    $query->filter('companyName', '=', 'Google');

    $pipeline = $datastore->AggregationQuery()
        ->over($query)
        ->addAggregation(Aggregation::count()->alias('total'));

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `query` | `https://docs.cloud.google.com/php/docs/reference/cloud-datastore/latest/Query.QueryInterface` The query whose properties to include. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/php/docs/reference/cloud-datastore/latest/Query.AggregationQuery` |   |

### queryObject

Format the query for use in the API.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `array` |   |