Class AggregationQuery (2.18.0)
Stay organized with collections
Save and categorize content based on your preferences.
AggregationQuery(client, query)An Aggregation query against the Cloud Datastore.
This class serves as an abstraction for creating aggregations over query in the Cloud Datastore.
Parameters |
|
|---|---|
| Name | Description |
client |
Client
The client used to connect to Datastore. |
query |
Query
The query used for aggregations. |
Properties
namespace
The nested query's namespace
| Returns | |
|---|---|
| Type | Description |
str or None |
the namespace assigned to this query |
project
Get the project for this AggregationQuery.
| Returns | |
|---|---|
| Type | Description |
str |
The project for the query. |
Methods
add_aggregation
add_aggregation(aggregation)Adds an aggregation operation to the nested query
| Parameter | |
|---|---|
| Name | Description |
aggregation |
BaseAggregation
An aggregation operation, e.g. a CountAggregation |
add_aggregations
add_aggregations(aggregations)Adds a list of aggregations to the nested query
| Parameter | |
|---|---|
| Name | Description |
aggregations |
list
a list of aggregation operations |
avg
avg(property_ref, alias=None)Adds a avg over the nested query
| Parameter | |
|---|---|
| Name | Description |
property_ref |
str
The property_ref for the sum |
count
count(alias=None)Adds a count over the nested query
| Parameter | |
|---|---|
| Name | Description |
alias |
str
(Optional) The alias for the count |
fetch
fetch(
client=None, limit=None, eventual=False, retry=None, timeout=None, read_time=None
)Execute the Aggregation Query; return an iterator for the aggregation results.
For example:
.. testsetup:: aggregation-query-fetch
import uuid
from google.cloud import datastore
unique = str(uuid.uuid4())[0:8]
client = datastore.Client(namespace='ns{}'.format(unique))
.. doctest:: aggregation-query-fetch
>>> andy = datastore.Entity(client.key('Person', 1234))
>>> andy['name'] = 'Andy'
>>> sally = datastore.Entity(client.key('Person', 2345))
>>> sally['name'] = 'Sally'
>>> bobby = datastore.Entity(client.key('Person', 3456))
>>> bobby['name'] = 'Bobby'
>>> client.put_multi([andy, sally, bobby])
>>> query = client.query(kind='Andy')
>>> aggregation_query = client.aggregation_query(query)
>>> result = aggregation_query.count(alias="total").fetch(limit=5)
>>> result
<<xref uid="google.cloud.datastore.aggregation.AggregationResultIterator">google.cloud.datastore.aggregation.AggregationResultIterator</xref> object at ...>
.. testcleanup:: aggregation-query-fetch
client.delete(andy.key)
| Parameters | |
|---|---|
| Name | Description |
client |
Client
(Optional) client used to connect to datastore. If not supplied, uses the query's value. |
eventual |
bool
(Optional) Defaults to strongly consistent (False). Setting True will use eventual consistency, but cannot be used inside a transaction or with read_time, otherwise will raise ValueError. |
retry |
A retry object used to retry requests. If |
timeout |
float
Time, in seconds, to wait for the request to complete. Note that if |
read_time |
datetime
(Optional) use read_time read consistency, cannot be used inside a transaction or with eventual consistency, or will raise ValueError. |
| Returns | |
|---|---|
| Type | Description |
|
The iterator for the aggregation query. |
sum
sum(property_ref, alias=None)Adds a sum over the nested query
| Parameter | |
|---|---|
| Name | Description |
property_ref |
str
The property_ref for the sum |