Reference documentation and code samples for the Firestore in Datastore mode API class Google::Cloud::Datastore::AggregateQuery.
AggregateQuery
An aggregate query can be used to fetch aggregate values (ex: count) for a query
Inherits
- Object
Examples
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) Create an aggregate query aggregate_query = query.aggregate_query .add_count aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get
Alias an aggregate query
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) Create an aggregate query aggregate_query = query.aggregate_query .add_count aggregate_alias: 'total' aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get('total')
Methods
#add_avg
def add_avg(name, aggregate_alias: nil) -> AggregateQuery
Adds an average aggregate.
Parameters
- name (String) — The property to apply average on.
- aggregate_alias (String) (defaults to: nil) — Alias to refer to the aggregate. Optional
Returns
Examples
- (AggregateQuery) — The modified aggregate query object with the added AVG aggregate.
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) Create an aggregate query aggregate_query = query.aggregate_query .add_avg("score") aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get
Alias an aggregate AVG query
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) # Create an aggregate query aggregate_query = query.aggregate_query .add_avg("score", aggregate_alias: 'avg_score') aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get('avg_score')
#add_count
def add_count(aggregate_alias: nil) -> AggregateQuery
Adds a count aggregate.
Parameter
- aggregate_alias (String) (defaults to: nil) — Alias to refer to the aggregate. Optional
Returns
Examples
- (AggregateQuery) — The modified aggregate query object with the added count aggregate.
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) Create an aggregate query aggregate_query = query.aggregate_query .add_count aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get
Alias an aggregate query
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) Create an aggregate query aggregate_query = query.aggregate_query .add_count aggregate_alias: 'total' aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get('total')
#add_sum
def add_sum(name, aggregate_alias: nil) -> AggregateQuery
Adds a sum aggregate.
Parameters
- name (String) — The property to sum by.
- aggregate_alias (String) (defaults to: nil) — Alias to refer to the aggregate. Optional
Returns
Examples
- (AggregateQuery) — The modified aggregate query object with the added SUM aggregate.
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) Create an aggregate query aggregate_query = query.aggregate_query .add_sum("score") aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get
Alias an aggregate SUM query
require "google/cloud/datastore" datastore = Google::Cloud::Datastore.new query = Google::Cloud::Datastore::Query.new query.kind("Task") .where("done", "=", false) # Create an aggregate query aggregate_query = query.aggregate_query .add_sum("score", aggregate_alias: 'total_score') aggregate_query_results = dataset.run_aggregation aggregate_query puts aggregate_query_results.get('total_score')