Toplama sorgusu çalıştırır.
Bu API, Firestore.RunQuery
gibi Document
sonuçları oluşturmak yerine, sunucu tarafında bir dizi AggregationResult
üretmek için toplamanın çalıştırılmasına olanak tanır.
Üst Düzey Örnek:
-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
HTTP isteği
POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runAggregationQuery
URL, gRPC Kod Dönüştürme söz dizimini kullanır.
Yol parametreleri
Parametreler | |
---|---|
parent |
Zorunlu. Üst kaynak adı. Biçimi: |
İstek içeriği
İsteğin gövdesi, aşağıdaki yapıya sahip veriler içerir:
JSON gösterimi |
---|
{ "explainOptions": { object ( |
Alanlar | |
---|---|
explainOptions |
İsteğe bağlı. Sorguyla ilgili seçenekleri açıklayın. Ayarlanırsa ek sorgu istatistikleri döndürülür. Aksi takdirde, yalnızca sorgu sonuçları döndürülür. |
Birleştirme alanı query_type . Çalıştırılacak sorgu. query_type şunlardan yalnızca biri olabilir: |
|
structuredAggregationQuery |
Toplama sorgusu. |
Birleştirme alanı consistency_selector . Sorgu için tutarlılık modu varsayılan olarak güçlü tutarlılığa ayarlanır. consistency_selector şunlardan yalnızca biri olabilir: |
|
transaction |
Toplamayı zaten etkin olan bir işlem içinde çalıştırın. Buradaki değer, sorgunun yürütüleceği opak işlem kimliğidir. Base64 kodlu bir dize. |
newTransaction |
Sorgu kapsamında yeni bir işlem başlatır ve varsayılan olarak salt okunurdur. Yeni işlem kimliği, akışta ilk yanıt olarak döndürülür. |
readTime |
Sorguyu belirtilen zaman damgasında yürütür. Bu, son 1 saat içindeki bir mikrosaniye hassasiyetli zaman damgası olmalıdır veya Belirli Bir Noktadan Kurtarma özelliği etkinleştirilmişse son 7 gün içindeki tam bir dakikalık zaman damgası da olabilir. Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
Yanıt gövdesi
Firestore.RunAggregationQuery
için yanıt.
Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:
JSON gösterimi |
---|
{ "result": { object ( |
Alanlar | |
---|---|
result |
Tek bir toplama sonucu. Kısmi ilerleme bildirilirken mevcut değildir. |
transaction |
Bu isteğin bir parçası olarak başlatılan işlem. Yalnızca istek yeni bir işlem başlatma isteğinde bulunduğunda ilk yanıtta mevcut olur. Base64 kodlu bir dize. |
readTime |
Toplam sonucun hesaplandığı zaman. Bu değer her zaman tekdüze artmaktadır. Bu durumda, sonuç akışındaki önceki AggregationResult öğesinin Sorgu hiçbir sonuç döndürmezse Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
explainMetrics |
Sorgu açıklama metrikleri. Bu yalnızca |
Yetkilendirme kapsamları
Aşağıdaki OAuth kapsamlarından birini gerektirir:
https://www.googleapis.com/auth/datastore
https://www.googleapis.com/auth/cloud-platform
Daha fazla bilgi için Kimlik Doğrulamaya Genel Bakış sayfasına göz atın.
StructuredAggregationQuery
StructuredQuery
üzerinden toplama çalıştırmak için kullanılan Firestore sorgusu.
JSON gösterimi |
---|
{ "aggregations": [ { object ( |
Alanlar | |
---|---|
aggregations[] |
İsteğe bağlı. Gereken:
|
Birleştirme alanı query_type . Toplanacak temel sorgu. query_type şunlardan yalnızca biri olabilir: |
|
structuredQuery |
İç içe yerleştirilmiş yapılandırılmış sorgu. |
Toplama
Tek bir sonuç üreten bir toplama tanımlar.
JSON gösterimi |
---|
{ "alias": string, // Union field |
Alanlar | |
---|---|
alias |
İsteğe bağlı. Toplama sonucunun depolanacağı alanın isteğe bağlı adı. Belirtilmezse Firestore
şu hale gelir:
Gereken:
|
Birleştirme alanı operator . Gerçekleştirilecek toplama türüdür, gerekli. operator şunlardan yalnızca biri olabilir: |
|
count |
Sayı toplayıcı. |
sum |
Toplam toplayıcı. |
avg |
Ortalama toplayıcı. |
Sayı
Sorguyla eşleşen dokümanların sayısıdır.
COUNT(*)
toplama işlevi dokümanın tamamında çalıştığından alana başvuru gerektirmez.
JSON gösterimi |
---|
{ "upTo": string } |
Alanlar | |
---|---|
upTo |
İsteğe bağlı. Sayılacak maksimum doküman sayısıyla ilgili isteğe bağlı sınırlama. Bu, taranacak doküman sayısı için bir üst sınır ayarlama yolu sağlar, gecikmeyi ve maliyeti sınırlar. Belirtilmemiş ifadesi, sınır yok olarak yorumlanır. Üst Düzey Örnek:
Gereken:
|
Toplam
İstenen alandaki değerlerin toplamı.
Yalnızca sayısal değerler toplanır.
NULL
dahil olmak üzere tüm sayısal olmayan değerler atlanır.Toplam değerler
NaN
içeriyorsaNaN
değerini döndürür. Sonsuzluk matematiği, IEEE-754 standartlarına uygundur.Ayarlanmış toplam değer boşsa 0 değerini döndürür.
Toplanan tüm sayılar tam sayıysa ve toplam sonuç taşmıyorsa 64 bitlik bir tam sayı döndürür. Aksi takdirde, sonuç bir çift olarak döndürülür. Toplanan tüm değerler tam sayı olsa bile, 64 bit imzalı bir tam sayı içine sığmıyorsa sonucun çift sayı olarak döndürüleceğini unutmayın. Böyle bir durumda, döndürülen değer kesinliği kaybeder.
Alt akış gerçekleştiğinde, kayan nokta toplaması belirli bir yöntem değildir. Bu, temel değerlerde herhangi bir değişiklik yapmadan aynı sorguyu tekrar tekrar çalıştırmanın, her seferinde biraz farklı sonuçlar doğurabileceği anlamına gelir. Böyle durumlarda değerler, tam sayı ve kayan nokta sayıları olarak depolanmalıdır.
JSON gösterimi |
---|
{
"field": {
object ( |
Alanlar | |
---|---|
field |
Toplama yapılacak alan. |
ORT
İstenen alanın değerlerinin ortalaması.
Yalnızca sayısal değerler toplanır.
NULL
dahil olmak üzere tüm sayısal olmayan değerler atlanır.Toplam değerler
NaN
içeriyorsaNaN
değerini döndürür. Sonsuzluk matematiği, IEEE-754 standartlarına uygundur.Toplam değer kümesi boşsa
NULL
değerini döndürür.Sonucu her zaman çift duyarlıklı sayı olarak döndürür.
JSON gösterimi |
---|
{
"field": {
object ( |
Alanlar | |
---|---|
field |
Toplama yapılacak alan. |
AggregationResult
Firestore toplama sorgusundaki tek bir paketin sonucudur.
Her sonuç için farklı alanlar bulunabilen doküman sorgularının aksine, aggregateFields
anahtarları, toplama sorgusundaki tüm sonuçlar için aynıdır.
JSON gösterimi |
---|
{
"aggregateFields": {
string: {
object ( |
Alanlar | |
---|---|
aggregateFields |
Toplama işlevlerinin sonucu, ör. Anahtar, girişte toplama işlevine atanan
|