Toplu
Tüm toplama işlevleri, aggregate(...) aşamasında üst düzey ifadeler olarak kullanılabilir.
| Ad | Açıklama |
COUNT
|
Belge sayısını döndürür. |
COUNT_IF
|
Bir ifadenin TRUE olarak değerlendirildiği dokümanların sayısını döndürür.
|
COUNT_DISTINCT
|
Benzersiz ve boş olmayan NULL değerlerin sayısını döndürür.
|
SUM
|
Tüm NUMERIC değerlerinin toplamını döndürür.
|
AVERAGE
|
Tüm NUMERIC değerlerinin ortalamasını döndürür.
|
MINIMUM
|
Minimum NULL olmayan değeri döndürür.
|
MAXIMUM
|
Maksimum NULL olmayan değeri döndürür.
|
FIRST
|
İlk dokümanın expression değerini döndürür.
|
LAST
|
Son belgenin expression değerini döndürür.
|
ARRAY_AGG
|
Tüm giriş değerlerinin dizisini döndürür. |
ARRAY_AGG_DISTINCT
|
Tüm farklı giriş değerlerinden oluşan bir dizi döndürür. |
COUNT
Söz dizimi:
count() -> INT64
count(expression: ANY) -> INT64
Açıklama:
expression değerinin NULL dışındaki herhangi bir değere eşit olduğu önceki aşamadaki dokümanların sayısını döndürür. expression sağlanmazsa önceki aşamadaki toplam belge sayısını döndürür.
Web
// Total number of books in the collection const countOfAll = await execute(db.pipeline() .collection("books") .aggregate(countAll().as("count")) ); // Number of books with nonnull `ratings` field const countField = await execute(db.pipeline() .collection("books") .aggregate(field("ratings").count().as("count")) );
Swift
// Total number of books in the collection let countAll = try await db.pipeline() .collection("books") .aggregate([CountAll().as("count")]) .execute() // Number of books with nonnull `ratings` field let countField = try await db.pipeline() .collection("books") .aggregate([Field("ratings").count().as("count")]) .execute()
Kotlin
// Total number of books in the collection val countAll = db.pipeline() .collection("books") .aggregate(AggregateFunction.countAll().alias("count")) .execute() // Number of books with nonnull `ratings` field val countField = db.pipeline() .collection("books") .aggregate(AggregateFunction.count("ratings").alias("count")) .execute()
Java
// Total number of books in the collection Task<Pipeline.Snapshot> countAll = db.pipeline() .collection("books") .aggregate(AggregateFunction.countAll().alias("count")) .execute(); // Number of books with nonnull `ratings` field Task<Pipeline.Snapshot> countField = db.pipeline() .collection("books") .aggregate(AggregateFunction.count("ratings").alias("count")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Count # Total number of books in the collection count_all = ( client.pipeline().collection("books").aggregate(Count().as_("count")).execute() ) # Number of books with nonnull `ratings` field count_field = ( client.pipeline() .collection("books") .aggregate(Count("ratings").as_("count")) .execute() )
COUNT_IF
Söz dizimi:
count_if(expression: BOOLEAN) -> INT64
Açıklama:
expression ifadesinin TRUE olarak değerlendirildiği önceki aşamadaki belge sayısını döndürür.
Web
const result = await execute(db.pipeline() .collection("books") .aggregate( field("rating").greaterThan(4).countIf().as("filteredCount") ) );
Swift
let result = try await db.pipeline() .collection("books") .aggregate([ AggregateFunction("count_if", [Field("rating").greaterThan(4)]).as("filteredCount") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .aggregate( AggregateFunction.countIf(field("rating").greaterThan(4)).alias("filteredCount") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .aggregate( AggregateFunction.countIf(field("rating").greaterThan(4)).alias("filteredCount") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .aggregate(Field.of("rating").greater_than(4).count_if().as_("filteredCount")) .execute() )
COUNT_DISTINCT
Söz dizimi:
count_distinct(expression: ANY) -> INT64
Açıklama:
expression'nin NULL ve ABSENT olmayan benzersiz değerlerinin sayısını döndürür.
Web
const result = await execute(db.pipeline() .collection("books") .aggregate(field("author").countDistinct().as("unique_authors")) );
Swift
let result = try await db.pipeline() .collection("books") .aggregate([AggregateFunction("count_distinct", [Field("author")]).as("unique_authors")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .aggregate(AggregateFunction.countDistinct("author").alias("unique_authors")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .aggregate(AggregateFunction.countDistinct("author").alias("unique_authors")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .aggregate(Field.of("author").count_distinct().as_("unique_authors")) .execute() )
TOPLA
Söz dizimi:
sum(expression: ANY) -> NUMBER
Açıklama:
Sayısal olmayan değerleri yoksayarak tüm sayısal değerlerin toplamını döndürür. Değerlerden herhangi biri NaN ise NaN değerini döndürür.
Çıkış, aşağıdaki durumlar hariç en geniş giriş türüyle aynı türde olur:
INTEGERolarak gösterilemeyen birINTEGER,DOUBLEolarak dönüştürülür.
Web
const result = await execute(db.pipeline() .collection("cities") .aggregate(field("population").sum().as("totalPopulation")) );
Swift
let result = try await db.pipeline() .collection("cities") .aggregate([Field("population").sum().as("totalPopulation")]) .execute()
Kotlin
val result = db.pipeline() .collection("cities") .aggregate(AggregateFunction.sum("population").alias("totalPopulation")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("cities") .aggregate(AggregateFunction.sum("population").alias("totalPopulation")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("cities") .aggregate(Field.of("population").sum().as_("totalPopulation")) .execute() )
ORTALAMA
Söz dizimi:
average(expression: ANY) -> FLOAT64
Açıklama:
Sayısal olmayan değerleri yoksayarak tüm sayısal değerlerin ortalamasını döndürür.
Değerlerden herhangi biri NaN ise NaN, sayısal değerler toplanmamışsa NULL olarak değerlendirilir.
Çıkış, aşağıdaki durumlar hariç giriş türüyle aynı türde olur:
INTEGERolarak gösterilemeyen birINTEGER,DOUBLEolarak dönüştürülür.
Web
const result = await execute(db.pipeline() .collection("cities") .aggregate(field("population").average().as("averagePopulation")) );
Swift
let result = try await db.pipeline() .collection("cities") .aggregate([Field("population").average().as("averagePopulation")]) .execute()
Kotlin
val result = db.pipeline() .collection("cities") .aggregate(AggregateFunction.average("population").alias("averagePopulation")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("cities") .aggregate(AggregateFunction.average("population").alias("averagePopulation")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("cities") .aggregate(Field.of("population").average().as_("averagePopulation")) .execute() )
MİNİMUM
Söz dizimi:
minimum(expression: ANY) -> ANY
Açıklama:
Her belgede değerlendirildiğinde expression öğesinin minimum NULL olmayan, eksik olmayan değerini döndürür.
NULL olmayan ve eksik olmayan değer yoksa NULL döndürülür. Hiçbir belgenin dikkate alınmadığı durumlar da buna dahildir.
Birden fazla minimum eşdeğer değer varsa bu değerlerden herhangi biri döndürülebilir. Değer türü sıralaması, belgelenmiş sıralamaya göre yapılır.
Web
const result = await execute(db.pipeline() .collection("books") .aggregate(field("price").minimum().as("minimumPrice")) );
Swift
let result = try await db.pipeline() .collection("books") .aggregate([Field("price").minimum().as("minimumPrice")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .aggregate(AggregateFunction.minimum("price").alias("minimumPrice")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .aggregate(AggregateFunction.minimum("price").alias("minimumPrice")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .aggregate(Field.of("price").minimum().as_("minimumPrice")) .execute() )
MAKSİMUM
Söz dizimi:
maximum(expression: ANY) -> ANY
Açıklama:
Her belgede değerlendirildiğinde expression öğesinin maksimum NULL olmayan, mevcut olmayan değerini döndürür.
NULL olmayan ve eksik olmayan değer yoksa NULL döndürülür. Hiçbir belgenin dikkate alınmadığı durumlar da buna dahildir.
Birden fazla maksimum eşdeğer değer varsa bu değerlerden herhangi biri döndürülebilir. Değer türü sıralaması, belgelenmiş sıralamaya göre yapılır.
Web
const result = await execute(db.pipeline() .collection("books") .aggregate(field("price").maximum().as("maximumPrice")) );
Swift
let result = try await db.pipeline() .collection("books") .aggregate([Field("price").maximum().as("maximumPrice")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .aggregate(AggregateFunction.maximum("price").alias("maximumPrice")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .aggregate(AggregateFunction.maximum("price").alias("maximumPrice")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .aggregate(Field.of("price").maximum().as_("maximumPrice")) .execute() )
FIRST
Söz dizimi:
first(expression: ANY) -> ANY
Açıklama:
Döndürülen ilk doküman için expression değerini döndürür.
LAST
Söz dizimi:
last(expression: ANY) -> ANY
Açıklama:
Son döndürülen doküman için expression değerini döndürür.
ARRAY_AGG
Söz dizimi:
array_agg(expression: ANY) -> ARRAY<ANY>
Açıklama:
Her belgede değerlendirildiğinde expression değerlerinin tümünü içeren bir dizi döndürür.
İfade, mevcut olmayan bir değere çözümlenirse NULL değerine dönüştürülür.
Çıkış dizisindeki öğelerin sırası sabit değildir ve bu sıraya güvenilmemelidir.
ARRAY_AGG_DISTINCT
Söz dizimi:
array_agg_distinct(expression: ANY) -> ARRAY<ANY>
Açıklama:
Her belgede değerlendirildiğinde expression öğesinin tüm farklı değerlerini içeren bir dizi döndürür.
İfade, mevcut olmayan bir değere çözümlenirse NULL değerine dönüştürülür.
Çıkış dizisindeki öğelerin sırası sabit değildir ve bu sıraya güvenilmemelidir.