توابع آرایه

توابع آرایه

نام شرح
ARRAY یک ARRAY حاوی یک عنصر برای هر متغیر مستقل ورودی برمی‌گرداند
ARRAY_CONCAT چندین آرایه را در یک ARRAY واحد به‌هم متصل می‌کند
ARRAY_CONTAINS اگر ARRAY داده‌شده حاوی مقدار خاصی باشد، TRUE را برمی‌گرداند
ARRAY_CONTAINS_ALL اگر همه مقادیر در ARRAY وجود داشته باشد، TRUE را برمی‌گرداند
ARRAY_CONTAINS_ANY اگر هرکدام از مقادیر در ARRAY وجود داشته باشد، TRUE را برمی‌گرداند
ARRAY_FILTER عناصر را از ARRAY که گزاره را برآورده نمی‌کنند فیلتر می‌کند
ARRAY_FIRST اولین عنصر را در ARRAY برمی‌گرداند
ARRAY_FIRST_N اولین عناصر n را در ARRAY برمی‌گرداند
ARRAY_GET عنصر را در نمایه داده‌شده در ARRAY برمی‌گرداند
ARRAY_INDEX_OF نمایه اولین رخداد یک مقدار را در ARRAY برمی‌گرداند
ARRAY_INDEX_OF_ALL همه نمایه‌های یک مقدار را در ARRAY برمی‌گرداند
ARRAY_LENGTH تعداد عناصر را در ARRAY برمی‌گرداند
ARRAY_LAST آخرین عنصر را در ARRAY برمی‌گرداند
ARRAY_LAST_N آخرین عناصر n را در ARRAY برمی‌گرداند
ARRAY_REVERSE ترتیب عناصر را در ARRAY معکوس می‌کند
ARRAY_SLICE برشی از ARRAY را برمی‌گرداند
ARRAY_TRANSFORM عناصر را در ARRAY با اعمال عبارت بر هر عنصر تبدیل می‌کند
MAXIMUM بیشترین مقدار را در ARRAY نتیجه می‌دهد
MAXIMUM_N n بزرگ‌ترین مقدار را در ARRAY برمی‌گرداند
MINIMUM کمترین مقدار را در ARRAY برمی‌گرداند
MINIMUM_N n کوچک‌ترین مقدار را در ARRAY برمی‌گرداند
SUM مجموع همه مقادیر NUMERIC را در ARRAY برمی‌گرداند.
JOIN الحاقی از عناصر را در ARRAY به‌عنوان مقدار STRING تولید می‌کند.

آرایه

نحو:

array(values: ANY...) -> ARRAY

شرح:

آرایه‌ای از عناصر ارائه‌شده می‌سازد.

  • اگر آرگومانی وجود نداشته باشد، با NULL در آرایه حاصل جایگزین می‌شود.

نمونه:

مقادیر array(values)
() [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟]
(۱، ۲، ۳) [۱، ۲، ۳]
("a", 1, true) ["a", 1, true]
(۱، خالی) [۱، خالی]
(۱، [۲، ۳]) [1, [2, 3]]

ARRAY_CONCAT

نحو:

array_concat(arrays: ARRAY...) -> ARRAY

شرح:

دو یا چند آرایه را در یک ARRAY واحد به‌هم متصل می‌کند.

نمونه:

آرایه‌ها array_concat(arrays)
([1, 2], [3, 4]) [1, 2, 3, 4]
(["a", "b"], ["c"]) ["a", "b", "c"]
([1], [2], [3]) [۱، ۲، ۳]
([], [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();
    
پایتون
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()
)
جاوا
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(arrayConcat(field("genre"), field("subGenre")).as("allGenres"))
        .execute()
        .get();
رفتن
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.ArrayConcat(firestore.FieldOf("genre"), firestore.FieldOf("subGenre")).As("allGenres"),
	)).
	Execute(ctx)

ARRAY_CONTAINS

نحو:

array_contains(array: ARRAY, value: ANY) -> BOOLEAN

شرح:

اگر value در array پیدا شود، TRUE را برمی‌گرداند و درغیراین‌صورت FALSE را برمی‌گرداند.

نمونه:

آرایه مقدار array_contains(array, value)
[۱، ۲، ۳] 2 درست
[[1, 2], [3]] [۱، ۲] درست
[۱، خالی] تهی درست
«abc» همه خطا
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();
    
پایتون
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("genre").array_contains("mystery").as_("isMystery"))
    .execute()
)
جاوا
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(arrayContains(field("genre"), "mystery").as("isMystery"))
        .execute()
        .get();
رفتن
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.ArrayContains(firestore.FieldOf("genre"), "mystery").As("isMystery"),
	)).
	Execute(ctx)

ARRAY_CONTAINS_ALL

نحو:

array_contains_all(array: ARRAY, search_values: ARRAY) -> BOOLEAN

شرح:

اگر همه search_values در array پیدا شوند، TRUE را برمی‌گرداند و درغیراین‌صورت FALSE را برمی‌گرداند.

نمونه:

آرایه search_values array_contains_all(array, search_values)
[۱، ۲، ۳] [۱، ۲] درست
[۱، ۲، ۳] [۱، ۴] نادرست
[۱، خالی] [null] درست
[NaN] [NaN] درست
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] درست
[۱، ۲، ۳] [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] درست
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();
    
پایتون
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()
)
جاوا
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(
            arrayContainsAll(field("genre"), Arrays.asList("fantasy", "adventure"))
                .as("isFantasyAdventure"))
        .execute()
        .get();
رفتن
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.ArrayContainsAll(firestore.FieldOf("genre"), []string{"fantasy", "adventure"}).As("isFantasyAdventure"),
	)).
	Execute(ctx)

ARRAY_CONTAINS_ANY

نحو:

array_contains_any(array: ARRAY, search_values: ARRAY) -> BOOLEAN

شرح:

اگر هرکدام از search_values در array پیدا شود، TRUE را برمی‌گرداند و درغیراین‌صورت FALSE را برمی‌گرداند.

نمونه:

آرایه search_values array_contains_any(array, search_values)
[۱، ۲، ۳] [۴، ۱] درست
[۱، ۲، ۳] [۴، ۵] نادرست
[1, 2, null] [null] درست
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();
    
پایتون
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()
)
جاوا
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(
            arrayContainsAny(field("genre"), Arrays.asList("fantasy", "nonfiction"))
                .as("isMysteryOrFantasy"))
        .execute()
        .get();
رفتن
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.ArrayContainsAny(firestore.FieldOf("genre"), []string{"fantasy", "nonfiction"}).As("isMysteryOrFantasy"),
	)).
	Execute(ctx)

ARRAY_FILTER

نحو:

array_filter(array: ARRAY, predicate: (ANY) -> BOOLEAN) -> ARRAY

شرح:

array را بااستفاده از عبارت predicate فیلتر می‌کند و آرایه جدیدی را که فقط شامل عناصر برآورده‌کننده گزاره است برمی‌گرداند.

  • برای هر عنصر در array، predicate ارزیابی می‌شود. اگر true را برگرداند، عنصر در نتیجه گنجانده می‌شود؛ درغیراین‌صورت (اگر false یا null را برگرداند)، حذف می‌شود.
  • اگر predicate به مقدار غیربولی یا غیرتهی ارزیابی شود، تابع خطا برمی‌گرداند.

نمونه:

آرایه گزاره array_filter(array, predicate)
[۱، ۲، ۳] x -> x > 1 [۲، ۳]
[1, null, 3] x -> x > 1 [۳]
["a", "b", "c"] x -> x != "b" ["a", "c"]
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] x -> true [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟]

ARRAY_GET

نحو:

array_get(array: ARRAY, index: INT64) -> ANY

شرح:

عنصر را در index مبتنی بر ۰ در array برمی‌گرداند.

  • اگر index منفی باشد، عناصر از انتهای آرایه قابل‌دسترسی هستند، که -1 آخرین عنصر است.
  • اگر array از نوع ARRAY و نه null باشد، خطایی برمی‌گرداند.
  • اگر index خارج‌از محدوده باشد، تابع مقدار غایب را برمی‌گرداند.
  • اگر index از نوع INT64 نباشد، تابع خطا برمی‌گرداند.

نمونه:

آرایه شاخص array_get(array, index)
[۱، ۲، ۳] 0 1
[۱، ۲، ۳] ۱- 3
[۱، ۲، ۳] 3 غایب
[۱، ۲، ۳] -4 غایب
«abc» 0 خطا
تهی 0 تهی
Array «a» خطا
Array ‫۲٫۰ خطا

ARRAY_LENGTH

نحو:

array_length(array: ARRAY) -> INT64

شرح:

تعداد عناصر را در array برمی‌گرداند.

نمونه:

آرایه array_length(array)
[۱، ۲، ۳] 3
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] 0
[1, 1, 1] 3
[۱، خالی] 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();
    
پایتون
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("genre").array_length().as_("genreCount"))
    .execute()
)
جاوا
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(arrayLength(field("genre")).as("genreCount"))
        .execute()
        .get();
رفتن
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.ArrayLength(firestore.FieldOf("genre")).As("genreCount"),
	)).
	Execute(ctx)

ARRAY_REVERSE

نحو:

array_reverse(array: ARRAY) -> ARRAY

شرح:

array داده‌شده را معکوس می‌کند.

نمونه:

آرایه array_reverse(array)
[۱، ۲، ۳] [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();
پایتون
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("genre").array_reverse().as_("reversedGenres"))
    .execute()
)
جاوا
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(arrayReverse(field("genre")).as("reversedGenres"))
        .execute()
        .get();
رفتن
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.ArrayReverse(firestore.FieldOf("genre")).As("reversedGenres"),
	)).
	Execute(ctx)

ARRAY_FIRST

نحو:

array_first(array: ARRAY) -> ANY

شرح:

اولین عنصر را در array برمی‌گرداند. این معادل array_get(array, 0) است.

  • اگر array خالی باشد، مقدار غایب را برمی‌گرداند.

نمونه:

آرایه array_first(array)
[۱، ۲، ۳] 1
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] غایب

ARRAY_FIRST_N

نحو:

array_first_n(array: ARRAY, n: INT64) -> ARRAY

شرح:

اولین n عنصر array را برمی‌گرداند. این معادل array_slice(array, 0, n) است.

  • اگر n منفی باشد، خطا برمی‌گرداند.

نمونه:

آرایه n array_first_n(array, n)
[1, 2, 3, 4, 5] 3 [۱، ۲، ۳]
[۱، ۲] 3 [۱، ۲]
[۱، ۲، ۳] 0 [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟]

ARRAY_INDEX_OF

نحو:

array_index_of(array: ARRAY, value: ANY) -> INT64

شرح:

نمایه مبتنی بر ۰ اولین رخداد value را در array برمی‌گرداند. اگر value پیدا نشود، عدد ۱- را برمی‌گرداند.

نمونه:

آرایه مقدار array_index_of(array, value)
[1, 2, 3, 2] 2 1
[۱، ۲، ۳] 4 ۱-
[1, null, 3] تهی 1

ARRAY_INDEX_OF_ALL

نحو:

array_index_of_all(array: ARRAY, value: ANY) -> ARRAY<INT64>

شرح:

آرایه‌ای حاوی نمایه‌های مبتنی بر ۰ از همه موارد وقوع value در array را برمی‌گرداند. اگر value پیدا نشود، [] را برمی‌گرداند.

نمونه:

آرایه مقدار array_index_of_all(array, value)
[1, 2, 3, 2] 2 [۱، ۳]
[۱، ۲، ۳] 4 [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟]
[1, null, 3, null] تهی [۱، ۳]

ARRAY_LAST

نحو:

array_last(array: ARRAY) -> ANY

شرح:

آخرین عنصر را در array برمی‌گرداند. این معادل array_get(array, -1) است.

  • اگر array خالی باشد، مقدار غایب را برمی‌گرداند.

نمونه:

آرایه array_last(array)
[۱، ۲، ۳] 3
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] غایب

ARRAY_LAST_N

نحو:

array_last_n(array: ARRAY, n: INT64) -> ARRAY

شرح:

آخرین n عنصر array را برمی‌گرداند.

  • اگر n منفی باشد، خطا برمی‌گرداند.

نمونه:

آرایه n array_last_n(array, n)
[1, 2, 3, 4, 5] 3 [۳، ۴، ۵]
[۱، ۲] 3 [۱، ۲]
[۱، ۲، ۳] 0 [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟]

ARRAY_SLICE

نحو:

array_slice(array: ARRAY, offset: INT64, length: INT64) -> ARRAY

شرح:

زیرمجموعه‌ای از array را که از نمایه مبتنی بر صفر offset شروع می‌شود و شامل عناصر length است برمی‌گرداند.

  • اگر offset منفی باشد، نشان‌دهنده جایگاه شروع از انتهای آرایه است، که -1 آخرین عنصر است.
  • اگر length بزرگ‌تر از تعداد عناصر باقی‌مانده در آرایه پس‌از offset باشد، نتیجه تا انتهای آرایه گسترش می‌یابد.
  • length باید غیرمنفی باشد، درغیراین‌صورت خطا برمی‌گرداند.

نمونه:

آرایه جبران کردن طول array_slice(array, offset, length)
[1, 2, 3, 4, 5] 1 3 [۲، ۳، ۴]
[1, 2, 3, 4, 5] ۲- 2 [۴، ۵]
[۱، ۲، ۳] 1 5 [۲، ۳]
[۱، ۲، ۳] 3 2 [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟]

ARRAY_TRANSFORM

نحو:

array_transform(array: ARRAY, expression: (ANY) -> ANY) -> ARRAY
array_transform(array: ARRAY, expression: (ANY, INT64) -> ANY) -> ARRAY

شرح:

array را با اعمال expression به هر عنصر تبدیل می‌کند و آرایه جدیدی با عناصر تبدیل‌شده برمی‌گرداند. آرایه برونداد همیشه هم‌اندازه آرایه ورودی خواهد بود.

  • expression می‌تواند تابع یکانی element -> result یا تابع دودویی (element, index) -> result باشد.
  • اگر expression تک‌مقداری باشد، با هر عنصر array فراخوانی می‌شود.
  • اگر expression دودویی باشد، با هر عنصر array و نمایه مبتنی بر صفر مربوط به آن فراخوانی می‌شود.

نمونه:

آرایه عبارت array_transform(array, expression)
[۱، ۲، ۳] x -> x * 2 [۲، ۴، ۶]
[۱، ۲، ۳] x -> x + 1 [۲، ۳، ۴]
[۱۰، ۲۰] (x, i) -> x + i [۱۰، ۲۱]
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] x -> 1 [زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟]

حداکثر

نحو:

maximum(array: ARRAY) -> ANY

شرح:

بیشترین مقدار را در array برمی‌گرداند.

  • مقادیر NULL درطول مقایسه نادیده گرفته می‌شوند.
  • اگر array خالی باشد یا فقط حاوی مقادیر NULL باشد، NULL را برمی‌گرداند.

نمونه:

آرایه maximum(array)
[۱، ۵، ۲] 5
[1, null, 5] 5
["a", "c", "b"] «c»
[null, null] تهی
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] تهی

MAXIMUM_N

نحو:

maximum_n(array: ARRAY, n: INT64) -> ARRAY

شرح:

آرایه‌ای از n بزرگ‌ترین مقدار در array را به‌ترتیب نزولی برمی‌گرداند.

  • مقادیر NULL نادیده گرفته می‌شوند.
  • اگر n منفی باشد، خطا برمی‌گرداند.

نمونه:

آرایه n maximum_n(array, n)
[1, 5, 2, 4, 3] 3 [۵، ۴، ۳]
[1, null, 5] 3 [۵، ۱]

حداقل

نحو:

minimum(array: ARRAY) -> ANY

شرح:

کمترین مقدار را در array برمی‌گرداند.

  • مقادیر NULL درطول مقایسه نادیده گرفته می‌شوند.
  • اگر array خالی باشد یا فقط حاوی مقادیر NULL باشد، NULL را برمی‌گرداند.

نمونه:

آرایه minimum(array)
[۱، ۵، ۲] 1
[۵، خالی، ۱] 1
["a", "c", "b"] «a»
[null, null] تهی
[زود می‌آیی][زود می‌آیین][زود میآیی][زود میآیین][الآن می‌آیی][الآن می‌آیین][الآن میایی][الآن میایین][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][کی می‌رسی][کی می‌رسین][کی می‌رسید][کی می‌رسی اینجا][کی می‌رسین اینجا][کی می‌رسید اینجا][کی می‌رسی آنجا][کی می‌رسین آنجا][کی می‌رسید آنجا][کی می‌رسی اونجا][کی می‌رسین اونجا][کی می‌رسید اونجا][کی اینجا می‌رسی][کی اینجا می‌رسین][کی اینجا می‌رسید][کی میرسی اینجا][کی میرسین اینجا][کی میرسید اینجا][کی فکر می‌کنی میرسی][کی فکر می‌کنی میرسین][کی فکر می‌کنی میرسید][کی فکر میکنی میرسی][کی فکر میکنی میرسین][کی فکر میکنی میرسید][تا کی میرسی][تا کی میرسین][تا کی میرسید][چقدر دیگه می‌رسی][چقدر دیگه می‌رسین][چقدر دیگه می‌رسید][فکر می‌کنی چقدر دیگه برسی][فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسی][حدوداً کی می‌رسی][حدوداً کی می‌رسین][حدوداً کی می‌رسید][کی فکر می‌کنی اینجایی][کی فکر می‌کنی اینجایین][کی فکر می‌کنی اینجایید][کی فکر میکنی اونجایی][کی فکر میکنی اونجایی][کی فکر میکنی اونجایید][چند دقیقه دیگه؟][کی؟][حدوداً؟][فکر می‌کنی چقدر دیگه برسی][[فکر می‌کنی چقدر دیگه برسین][فکر می‌کنی چقدر دیگه برسید]فکر می‌کنی چند دقیقه دیگه؟][فکرمیکنی کی؟][فکر می‌کنی چند دقیقه دیگه؟][فکرمی‌کنی کی؟][فکر میکنی چند دقیقه دیگه؟][زمان تقریبی ورود؟][زمان تقریبی رسیدن؟][تقریباً؟][نزدیکی؟][چقدر دیگه؟][کی؟][اینجا؟][اونجا؟][آنجا؟][سر میدونی؟][سر میدونین؟][سر کوچه‌ای؟][سر کوچه‌این؟][پشت دری؟][پشت درین؟][حالا؟] تهی

MINIMUM_N

نحو:

minimum_n(array: ARRAY, n: INT64) -> ARRAY

شرح:

آرایه‌ای از n کوچک‌ترین مقدار در array را به‌ترتیب صعودی برمی‌گرداند.

  • مقادیر NULL نادیده گرفته می‌شوند.
  • اگر n منفی باشد، خطا برمی‌گرداند.

نمونه:

آرایه n minimum_n(array, n)
[1, 5, 2, 4, 3] 3 [۱، ۲، ۳]
[۵، خالی، ۱] 3 [۱، ۵]

SUM

نحو:

sum(array: ARRAY) -> INT64 | FLOAT64

شرح:

مجموع همه مقادیر NUMERIC را در ARRAY برمی‌گرداند.

  • مقادیر غیرعددی در آرایه نادیده گرفته می‌شوند.
  • اگر هر مقدار عددی در آرایه NaN باشد، تابع NaN را برمی‌گرداند.
  • نوع پاسخ با وسیع‌ترین نوع عددی در آرایه تعیین می‌شود: INT64 < FLOAT64.
  • اگر سرریز عدد صحیح ۶۴ بیتی قبل‌از جمع شدن هر مقدار نقطه شناور رخ دهد، خطایی برگردانده می‌شود. اگر مقادیر نقطه شناور جمع شوند، سرریز منجر به بی‌نهایت +/- خواهد شد.
  • اگر آرایه اصلاً حاوی مقادیر عددی نباشد، تابع NULL را برمی‌گرداند.

نمونه:

آرایه sum(array)
[۱، ۲، ۳] 6L
[1L, 2L, 3L] 6L
[2000000000, 2000000000] 4000000000L
[۱۰، ۲۰٫۵] ۳۰٫۵
[1, "a", 2] 3L
[INT64.MAX_VALUE, 1] خطا
[INT64.MAX_VALUE, 1, -1.0] خطا
[INT64.MAX_VALUE, 1.0] 9.223372036854776e+18

پیوستن

نحو:

join[T <: STRING | BYTES](array: ARRAY<T>, delimiter: T) -> STRING
join[T <: STRING | BYTES](array: ARRAY<T>, delimiter: T, null_text: T) -> STRING

شرح:

الحاق عناصر موجود در array را به‌عنوان STRING برمی‌گرداند. ‫array می‌تواند از نوع داده STRING یا BYTES باشد.

  • همه عناصر در array، delimiter، و null_text باید از یک نوع باشند؛ همه آن‌ها باید STRING یا همه آن‌ها باید BYTES باشند.
  • اگر null_text ارائه شده باشد، هر مقدار NULL در array با null_text جایگزین می‌شود.
  • اگر null_text ارائه نشده باشد، مقادیر NULL در array از نتیجه حذف می‌شود.

نمونه:

وقتی null_text ارائه نشده باشد:

آرایه جداکننده 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'] «،» خطا
["a", "c"] b',' خطا
[b'a', b'c'] «،» خطا

وقتی null_text ارائه می‌شود:

آرایه جداکننده 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' خطا
[b'a', null] b',' «N» خطا