Dizi İşlevleri
| Ad | Açıklama |
ARRAY
|
Her giriş bağımsız değişkeni için bir öğe içeren bir ARRAY döndürür.
|
ARRAY_CONCAT
|
Birden fazla diziyi tek bir ARRAY içinde birleştirir.
|
ARRAY_CONTAINS
|
Belirli bir ARRAY, belirli bir değeri içeriyorsa TRUE değerini döndürür.
|
ARRAY_CONTAINS_ALL
|
Tüm değerler ARRAY içinde mevcutsa TRUE değerini döndürür.
|
ARRAY_CONTAINS_ANY
|
Değerlerden herhangi biri ARRAY içinde varsa TRUE değerini döndürür.
|
ARRAY_FILTER
|
Bir ARRAY öğesindeki, bir yüklemi karşılamayan öğeleri filtreler.
|
ARRAY_FIRST
|
ARRAY içindeki ilk öğeyi döndürür.
|
ARRAY_FIRST_N
|
ARRAY içindeki ilk n öğeyi döndürür.
|
ARRAY_GET
|
ARRAY içinde belirtilen dizindeki öğeyi döndürür.
|
ARRAY_INDEX_OF
|
Bir ARRAY değerinin ilk oluşumunun dizinini döndürür.
|
ARRAY_INDEX_OF_ALL
|
Bir ARRAY içindeki değerin tüm dizinlerini döndürür.
|
ARRAY_LENGTH
|
Bir ARRAY içindeki öğe sayısını döndürür.
|
ARRAY_LAST
|
ARRAY içindeki son öğeyi döndürür.
|
ARRAY_LAST_N
|
ARRAY içindeki son n öğeyi döndürür.
|
ARRAY_REVERSE
|
ARRAY içindeki öğelerin sırasını tersine çevirir.
|
ARRAY_SLICE
|
ARRAY dilimini döndürür.
|
ARRAY_TRANSFORM
|
İfadeyi her öğeye uygulayarak ARRAY içindeki öğeleri dönüştürür.
|
MAXIMUM
|
ARRAY içindeki maksimum değeri döndürür.
|
MAXIMUM_N
|
n içindeki en büyük ARRAY değeri döndürür.
|
MINIMUM
|
ARRAY içindeki minimum değeri döndürür.
|
MINIMUM_N
|
n içindeki en küçük ARRAY değeri döndürür.
|
SUM
|
Bir ARRAY içindeki tüm NUMERIC değerlerinin toplamını döndürür.
|
JOIN
|
ARRAY içindeki öğelerin birleşimini STRING değeri olarak oluşturur.
|
ARRAY
Söz dizimi:
array(values: ANY...) -> ARRAY
Açıklama:
Belirtilen öğelerden bir dizi oluşturur.
- Bir bağımsız değişken yoksa sonuçtaki dizide
NULLile değiştirilir.
Örnekler:
| values | array(values) |
|---|---|
| () | [] |
| (1, 2, 3) | [1, 2, 3] |
| ("a", 1, true) | ["a", 1, true] |
| (1, null) | [1, null] |
| (1, [2, 3]) | [1, [2, 3]] |
ARRAY_CONCAT
Söz dizimi:
array_concat(arrays: ARRAY...) -> ARRAY
Açıklama:
İki veya daha fazla diziyi tek bir ARRAY içinde birleştirir.
Örnekler:
| diziler | array_concat(arrays) |
|---|---|
| ([1, 2], [3, 4]) | [1, 2, 3, 4] |
| (["a", "b"], ["c"]) | ["a", "b", "c"] |
| ([1], [2], [3]) | [1, 2, 3] |
| ([], [1, 2]) | [1, 2] |
Node.js
const result = await db.pipeline() .collection("books") .select(field("genre").arrayConcat([field("subGenre")]).as("allGenres")) .execute();
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayConcat([Field("subGenre")]).as("allGenres")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayConcat(field("subGenre")).alias("allGenres")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayConcat(field("subGenre")).alias("allGenres")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_concat(Field.of("subGenre")).as_("allGenres")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayConcat(field("genre"), field("subGenre")).as("allGenres")) .execute() .get();
ARRAY_CONTAINS
Söz dizimi:
array_contains(array: ARRAY, value: ANY) -> BOOLEAN
Açıklama:
value, array içinde bulunursa TRUE, aksi takdirde FALSE değerini döndürür.
Örnekler:
| dizi | value | array_contains(array, value) |
|---|---|---|
| [1, 2, 3] | 2 | doğru |
| [[1, 2], [3]] | [1, 2] | doğru |
| [1, null] | null | doğru |
| "abc" | TÜM FİYATLAR | hata |
Node.js
const result = await db.pipeline() .collection("books") .select(field("genre").arrayContains(constant("mystery")).as("isMystery")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("genre").arrayContains(constant("mystery")).as("isMystery")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayContains(Constant("mystery")).as("isMystery")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayContains("mystery").alias("isMystery")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayContains("mystery").alias("isMystery")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_contains("mystery").as_("isMystery")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayContains(field("genre"), "mystery").as("isMystery")) .execute() .get();
ARRAY_CONTAINS_ALL
Söz dizimi:
array_contains_all(array: ARRAY, search_values: ARRAY) -> BOOLEAN
Açıklama:
Tüm search_values değerleri array içinde bulunursa TRUE, aksi takdirde FALSE değerini döndürür.
Örnekler:
| dizi | search_values | array_contains_all(array, search_values) |
|---|---|---|
| [1, 2, 3] | [1, 2] | doğru |
| [1, 2, 3] | [1, 4] | yanlış |
| [1, null] | [boş] | doğru |
| [NaN] | [NaN] | doğru |
| [] | [] | doğru |
| [1, 2, 3] | [] | doğru |
Node.js
const result = await db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll([constant("fantasy"), constant("adventure")]) .as("isFantasyAdventure") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll([constant("fantasy"), constant("adventure")]) .as("isFantasyAdventure") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre") .arrayContainsAll([Constant("fantasy"), Constant("adventure")]) .as("isFantasyAdventure") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll(listOf("fantasy", "adventure")) .alias("isFantasyAdventure") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll(Arrays.asList("fantasy", "adventure")) .alias("isFantasyAdventure") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("genre") .array_contains_all(["fantasy", "adventure"]) .as_("isFantasyAdventure") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( arrayContainsAll(field("genre"), Arrays.asList("fantasy", "adventure")) .as("isFantasyAdventure")) .execute() .get();
ARRAY_CONTAINS_ANY
Söz dizimi:
array_contains_any(array: ARRAY, search_values: ARRAY) -> BOOLEAN
Açıklama:
search_values değerlerinden herhangi biri array içinde bulunursa TRUE, aksi takdirde FALSE değerini döndürür.
Örnekler:
| dizi | search_values | array_contains_any(array, search_values) |
|---|---|---|
| [1, 2, 3] | [4, 1] | doğru |
| [1, 2, 3] | [4, 5] | yanlış |
| [1, 2, null] | [boş] | doğru |
Node.js
const result = await db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny([constant("fantasy"), constant("nonfiction")]) .as("isMysteryOrFantasy") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny([constant("fantasy"), constant("nonfiction")]) .as("isMysteryOrFantasy") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre") .arrayContainsAny([Constant("fantasy"), Constant("nonfiction")]) .as("isMysteryOrFantasy") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny(listOf("fantasy", "nonfiction")) .alias("isMysteryOrFantasy") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny(Arrays.asList("fantasy", "nonfiction")) .alias("isMysteryOrFantasy") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("genre") .array_contains_any(["fantasy", "nonfiction"]) .as_("isMysteryOrFantasy") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( arrayContainsAny(field("genre"), Arrays.asList("fantasy", "nonfiction")) .as("isMysteryOrFantasy")) .execute() .get();
ARRAY_FILTER
Söz dizimi:
array_filter(array: ARRAY, predicate: (ANY) -> BOOLEAN) -> ARRAY
Açıklama:
array ifadesini kullanarak predicate öğelerini filtreler ve yalnızca koşulu karşılayan öğeleri içeren yeni bir dizi döndürür.
arrayiçindeki her öğe içinpredicatedeğerlendirilir.truedöndürürse öğe sonuca dahil edilir. Aksi takdirde (falseveyanulldöndürürse) öğe atlanır.predicate, boole olmayan veya null olmayan bir değer olarak değerlendirilirse işlev hata döndürür.
Örnekler:
| dizi | yüklem | array_filter(array, predicate) |
|---|---|---|
| [1, 2, 3] | x -> x > 1 | [2, 3] |
| [1, null, 3] | x -> x > 1 | [3] |
| ["a", "b", "c"] | x -> x != "b" | ["a", "c"] |
| [] | x -> true | [] |
ARRAY_GET
Söz dizimi:
array_get(array: ARRAY, index: INT64) -> ANY
Açıklama:
array içinde 0 tabanlı index konumundaki öğeyi döndürür.
indexnegatifse öğelere dizinin sonundan erişilir. Bu durumda-1son öğedir.array,ARRAYtüründe değilse venulldeğilse hata döndürür.indexsınırların dışındaysa işlev, eksik bir değer döndürür.index,INT64türünde değilse işlev hata döndürür.
Örnekler:
| dizi | indeks | array_get(array, index) |
|---|---|---|
| [1, 2, 3] | 0 | 1 |
| [1, 2, 3] | -1 | 3 |
| [1, 2, 3] | 3 | yok |
| [1, 2, 3] | -4 | yok |
| "abc" | 0 | hata |
| null | 0 | null |
Array |
"a" | hata |
Array |
2.0 | hata |
ARRAY_LENGTH
Söz dizimi:
array_length(array: ARRAY) -> INT64
Açıklama:
array içindeki öğe sayısını döndürür.
Örnekler:
| dizi | array_length(array) |
|---|---|
| [1, 2, 3] | 3 |
| [] | 0 |
| [1, 1, 1] | 3 |
| [1, null] | 2 |
Node.js
const result = await db.pipeline() .collection("books") .select(field("genre").arrayLength().as("genreCount")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("genre").arrayLength().as("genreCount")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayLength().as("genreCount")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayLength().alias("genreCount")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayLength().alias("genreCount")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_length().as_("genreCount")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayLength(field("genre")).as("genreCount")) .execute() .get();
ARRAY_REVERSE
Söz dizimi:
array_reverse(array: ARRAY) -> ARRAY
Açıklama:
Belirtilen array değerini tersine çevirir.
Örnekler:
| dizi | array_reverse(array) |
|---|---|
| [1, 2, 3] | [3, 2, 1] |
| ["a", "b"] | ["b", "a"] |
| [1, 2, 2, 3] | [3, 2, 2, 1] |
Node.js
const result = await db.pipeline() .collection("books") .select(arrayReverse(field("genre")).as("reversedGenres")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("genre").arrayReverse().as("reversedGenres")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayReverse().as("reversedGenres")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayReverse().alias("reversedGenres")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayReverse().alias("reversedGenres")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_reverse().as_("reversedGenres")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayReverse(field("genre")).as("reversedGenres")) .execute() .get();
ARRAY_FIRST
Söz dizimi:
array_first(array: ARRAY) -> ANY
Açıklama:
array içindeki ilk öğeyi döndürür. Bu, array_get(array, 0) ile eşdeğerdir.
arrayboşsa eksik bir değer döndürür.
Örnekler:
| dizi | array_first(array) |
|---|---|
| [1, 2, 3] | 1 |
| [] | yok |
ARRAY_FIRST_N
Söz dizimi:
array_first_n(array: ARRAY, n: INT64) -> ARRAY
Açıklama:
array öğesinin ilk n öğesini döndürür. Bu, array_slice(array, 0, n) ile eşdeğerdir.
nnegatifse hata döndürülür.
Örnekler:
| dizi | n | array_first_n(array, n) |
|---|---|---|
| [1, 2, 3, 4, 5] | 3 | [1, 2, 3] |
| [1, 2] | 3 | [1, 2] |
| [1, 2, 3] | 0 | [] |
ARRAY_INDEX_OF
Söz dizimi:
array_index_of(array: ARRAY, value: ANY) -> INT64
Açıklama:
value karakterinin array içindeki ilk oluşumunun 0 tabanlı dizinini döndürür. value bulunamazsa -1 değerini döndürür.
Örnekler:
| dizi | value | array_index_of(array, value) |
|---|---|---|
| [1, 2, 3, 2] | 2 | 1 |
| [1, 2, 3] | 4 | -1 |
| [1, null, 3] | null | 1 |
ARRAY_INDEX_OF_ALL
Söz dizimi:
array_index_of_all(array: ARRAY, value: ANY) -> ARRAY<INT64>
Açıklama:
value öğesinin array içinde geçtiği tüm yerlerin 0 tabanlı dizinlerini içeren bir dizi döndürür. value bulunamazsa [] değerini döndürür.
Örnekler:
| dizi | value | array_index_of_all(array, value) |
|---|---|---|
| [1, 2, 3, 2] | 2 | [1, 3] |
| [1, 2, 3] | 4 | [] |
| [1, null, 3, null] | null | [1, 3] |
ARRAY_LAST
Söz dizimi:
array_last(array: ARRAY) -> ANY
Açıklama:
array içindeki son öğeyi döndürür. Bu, array_get(array, -1) ile eşdeğerdir.
arrayboşsa eksik bir değer döndürür.
Örnekler:
| dizi | array_last(array) |
|---|---|
| [1, 2, 3] | 3 |
| [] | yok |
ARRAY_LAST_N
Söz dizimi:
array_last_n(array: ARRAY, n: INT64) -> ARRAY
Açıklama:
array dizisinin son n öğesini döndürür.
nnegatifse hata döndürülür.
Örnekler:
| dizi | n | array_last_n(array, n) |
|---|---|---|
| [1, 2, 3, 4, 5] | 3 | [3, 4, 5] |
| [1, 2] | 3 | [1, 2] |
| [1, 2, 3] | 0 | [] |
ARRAY_SLICE
Söz dizimi:
array_slice(array: ARRAY, offset: INT64, length: INT64) -> ARRAY
Açıklama:
0 tabanlı offset dizininden başlayıp length öğesini de içeren array alt kümesini döndürür.
offsetnegatifse dizinin sonundan itibaren başlangıç konumunu belirtir.-1son öğedir.length,offset'den sonra dizide kalan öğe sayısından büyükse sonuç dizinin sonuna kadar uzanır.lengthnegatif olmamalıdır. Aksi takdirde hata döndürülür.
Örnekler:
| dizi | telafi etmek | uzunluk | array_slice(array, offset, length) |
|---|---|---|---|
| [1, 2, 3, 4, 5] | 1 | 3 | [2, 3, 4] |
| [1, 2, 3, 4, 5] | -2 | 2 | [4, 5] |
| [1, 2, 3] | 1 | 5 | [2, 3] |
| [1, 2, 3] | 3 | 2 | [] |
ARRAY_TRANSFORM
Söz dizimi:
array_transform(array: ARRAY, expression: (ANY) -> ANY) -> ARRAY
array_transform(array: ARRAY, expression: (ANY, INT64) -> ANY) -> ARRAY
Açıklama:
Her öğeye expression işlevini uygulayarak array değerini dönüştürür ve dönüştürülmüş öğeler içeren yeni bir dizi döndürür. Çıkış dizisi her zaman giriş dizisiyle aynı boyutta olur.
expression, tekli işlevelement -> resultveya ikili işlev(element, index) -> resultolabilir.expressiontekli isearrayöğelerinin her biriyle çağrılır.expressionikili isearrayöğelerinin her biri ve bunlara karşılık gelen 0 tabanlı dizinle birlikte çağrılır.
Örnekler:
| dizi | ifade | array_transform(array, expression) |
|---|---|---|
| [1, 2, 3] | x -> x * 2 | [2, 4, 6] |
| [1, 2, 3] | x -> x + 1 | [2, 3, 4] |
| [10, 20] | (x, i) -> x + i | [10, 21] |
| [] | x -> 1 | [] |
MAKSİMUM
Söz dizimi:
maximum(array: ARRAY) -> ANY
Açıklama:
array içindeki maksimum değeri döndürür.
NULLdeğerleri karşılaştırma sırasında yoksayılır.arrayboşsa veya yalnızcaNULLdeğerlerini içeriyorsaNULLdeğerini döndürür.
Örnekler:
| dizi | maximum(array) |
|---|---|
| [1, 5, 2] | 5 |
| [1, null, 5] | 5 |
| ["a", "c", "b"] | "c" |
| [null, null] | null |
| [] | null |
MAXIMUM_N
Söz dizimi:
maximum_n(array: ARRAY, n: INT64) -> ARRAY
Açıklama:
n içindeki array en büyük değerlerin dizisini azalan sırada döndürür.
NULLdeğerleri yok sayılır.nnegatifse hata döndürülür.
Örnekler:
| dizi | n | maximum_n(array, n) |
|---|---|---|
| [1, 5, 2, 4, 3] | 3 | [5, 4, 3] |
| [1, null, 5] | 3 | [5, 1] |
MİNİMUM
Söz dizimi:
minimum(array: ARRAY) -> ANY
Açıklama:
array içindeki minimum değeri döndürür.
NULLdeğerleri karşılaştırma sırasında yoksayılır.arrayboşsa veya yalnızcaNULLdeğerlerini içeriyorsaNULLdeğerini döndürür.
Örnekler:
| dizi | minimum(array) |
|---|---|
| [1, 5, 2] | 1 |
| [5, null, 1] | 1 |
| ["a", "c", "b"] | "a" |
| [null, null] | null |
| [] | null |
MINIMUM_N
Söz dizimi:
minimum_n(array: ARRAY, n: INT64) -> ARRAY
Açıklama:
n içindeki array en küçük değerlerin dizisini artan sırada döndürür.
NULLdeğerleri yok sayılır.nnegatifse hata döndürülür.
Örnekler:
| dizi | n | minimum_n(array, n) |
|---|---|---|
| [1, 5, 2, 4, 3] | 3 | [1, 2, 3] |
| [5, null, 1] | 3 | [1, 5] |
TOPLA
Söz dizimi:
sum(array: ARRAY) -> INT64 | FLOAT64
Açıklama:
Bir ARRAY içindeki tüm NUMERIC değerlerinin toplamını döndürür.
- Dizideki sayısal olmayan değerler yoksayılır.
- Dizideki sayısal değerlerden herhangi biri
NaNise işlevNaNdeğerini döndürür. - Dönüş türü, dizideki en geniş sayısal türe göre belirlenir:
INT64<FLOAT64. - Herhangi bir kayan nokta değeri toplanmadan önce 64 bitlik tam sayı taşması meydana gelirse hata döndürülür. Kayan nokta değerleri toplandığında taşma, +/- sonsuzlukla sonuçlanır.
- Dizide hiç sayısal değer yoksa işlev
NULLdeğerini döndürür.
Örnekler:
| dizi | sum(array) |
|---|---|
| [1, 2, 3] | 6L |
| [1L, 2L, 3L] | 6L |
| [2000000000, 2000000000] | 4000000000L |
| [10, 20.5] | 30,5 |
| [1, "a", 2] | 3L |
| [INT64.MAX_VALUE, 1] | hata |
| [INT64.MAX_VALUE, 1, -1.0] | hata |
| [INT64.MAX_VALUE, 1.0] | 9.223372036854776e+18 |
KATIL
Söz dizimi:
join[T <: STRING | BYTES](array: ARRAY<T>, delimiter: T) -> STRING
join[T <: STRING | BYTES](array: ARRAY<T>, delimiter: T, null_text: T) -> STRING
Açıklama:
array içindeki öğelerin birleştirilmiş halini STRING olarak döndürür. array, STRING veya BYTES veri türünde olabilir.
array,delimitervenull_textiçindeki tüm öğeler aynı türden olmalıdır. Tüm öğelerSTRINGveyaBYTESolmalıdır.null_textsağlanırsaarrayiçindeki tümNULLdeğerlerinull_textile değiştirilir.null_textsağlanmazsaarrayiçindekiNULLdeğerleri sonuçtan çıkarılır.
Örnekler:
null_text sağlanmadığında:
| dizi | ayırıcı | join(array, delimiter) |
|---|---|---|
| ["a", "b", "c"] | "," | "a,b,c" |
| ["a", null, "c"] | "," | "a,c" |
| [b'a', b'b', b'c'] | b',' | b'a,b,c' |
| ["a", b'c'] | "," | hata |
| ["a", "c"] | b',' | hata |
| [b'a', b'c'] | "," | hata |
null_text sağlandığında:
| dizi | ayırıcı | null_text | join(array, delimiter, null_text) |
|---|---|---|---|
| ["a", null, "c"] | "," | "MISSING" | "a,MISSING,c" |
| [b'a', null, b'c'] | b',' | b'NULL' | b'a,NULL,c' |
| [null, "b", null] | "," | "MISSING" | "MISSING,b,MISSING" |
| [b'a', null, null] | b',' | b'NULL' | b'a,NULL,NULL' |
| ["a", null] | "," | b'N' | hata |
| [b'a', null] | b',' | "N" | hata |