ऐरे फ़ंक्शन

ऐरे फ़ंक्शन

नाम ब्यौरा
ARRAY यह एक ARRAY दिखाता है, जिसमें हर इनपुट आर्ग्युमेंट के लिए एक एलिमेंट होता है
ARRAY_CONCAT यह फ़ंक्शन, एक से ज़्यादा ऐरे को एक ही ARRAY में जोड़ता है
ARRAY_CONTAINS अगर दिए गए ARRAY में कोई वैल्यू मौजूद है, तो TRUE दिखाता है
ARRAY_CONTAINS_ALL अगर सभी वैल्यू ARRAY में मौजूद हैं, तो TRUE दिखाता है
ARRAY_CONTAINS_ANY अगर कोई भी वैल्यू ARRAY में मौजूद है, तो TRUE दिखाता है
ARRAY_GET ARRAY में मौजूद किसी इंडेक्स पर मौजूद एलिमेंट दिखाता है
ARRAY_LENGTH यह फ़ंक्शन, ARRAY में मौजूद एलिमेंट की संख्या दिखाता है
ARRAY_REVERSE यह फ़ंक्शन, ARRAY में मौजूद एलिमेंट का क्रम उलट देता है
SUM यह ARRAY में मौजूद सभी NUMERIC वैल्यू का योग दिखाता है.
JOIN यह ARRAY में मौजूद एलिमेंट को जोड़कर, STRING वैल्यू बनाता है.

ARRAY

सिंटैक्स:

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

ब्यौरा:

यह दिए गए एलिमेंट से एक अरे बनाता है.

  • अगर कोई आर्ग्युमेंट मौजूद नहीं है, तो नतीजे के तौर पर मिले कलेक्शन में उसकी जगह NULL रख दिया जाता है.

उदाहरण:

वैल्यू 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

सिंटैक्स:

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, 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

सिंटैक्स:

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

ब्यौरा:

अगर array में value मौजूद है, तो TRUE दिखाता है. ऐसा न होने पर, FALSE दिखाता है.

उदाहरण:

कलेक्शन value array_contains(array, value)
[1, 2, 3] 2 सही
[[1, 2], [3]] [1, 2] सही
[1, null] शून्य सही
"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();
    
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

सिंटैक्स:

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

ब्यौरा:

अगर सभी search_values, array में मौजूद हैं, तो TRUE दिखाता है. ऐसा न होने पर, FALSE दिखाता है.

उदाहरण:

कलेक्शन search_values array_contains_all(array, search_values)
[1, 2, 3] [1, 2] सही
[1, 2, 3] [1, 4] गलत
[1, null] [अमान्य] सही
[NaN] [NaN] सही
[] [] सही
[1, 2, 3] [] सही
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

सिंटैक्स:

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

ब्यौरा:

अगर search_values में से कोई भी वैल्यू array में मिलती है, तो TRUE दिखाता है. ऐसा न होने पर, FALSE दिखाता है.

उदाहरण:

कलेक्शन search_values array_contains_any(array, search_values)
[1, 2, 3] [4, 1] सही
[1, 2, 3] [4, 5] गलत
[1, 2, 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();
    
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_GET

सिंटैक्स:

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

ब्यौरा:

यह फ़ंक्शन, array में मौजूद 0 पर आधारित index पर मौजूद एलिमेंट दिखाता है.

  • अगर index की वैल्यू नेगेटिव है, तो ऐरे के आखिर से एलिमेंट ऐक्सेस किए जाते हैं. इसमें -1 आखिरी एलिमेंट होता है.
  • अगर array, ARRAY टाइप का नहीं है, तो फ़ंक्शन, मौजूद न होने वाली वैल्यू दिखाता है.
  • अगर index तय सीमा से बाहर है, तो फ़ंक्शन 'मौजूद नहीं है' वैल्यू दिखाता है.
  • अगर index, INT64 टाइप का नहीं है, तो फ़ंक्शन गड़बड़ी दिखाता है.

उदाहरण:

कलेक्शन इंडेक्स array_get(array, index)
[1, 2, 3] 0 1
[1, 2, 3] -1 3
[1, 2, 3] 3 अनुपस्थित
[1, 2, 3] -4 अनुपस्थित
"abc" 0 अनुपस्थित
शून्य 0 अनुपस्थित
Array "a" गड़बड़ी
Array 2.0 गड़बड़ी

ARRAY_LENGTH

सिंटैक्स:

array_length(array: ARRAY) -> INT64

ब्यौरा:

array में मौजूद एलिमेंट की संख्या दिखाता है.

उदाहरण:

कलेक्शन 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

सिंटैक्स:

array_reverse(array: ARRAY) -> ARRAY

ब्यौरा:

यह दिए गए array को उलट देता है.

उदाहरण:

कलेक्शन 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();

SUM

सिंटैक्स:

sum(array: ARRAY) -> INT64 | FLOAT64

ब्यौरा:

यह ARRAY में मौजूद सभी NUMERIC वैल्यू का योग दिखाता है.

  • ऐरे में मौजूद नॉन-न्यूमेरिक वैल्यू को अनदेखा किया जाता है.
  • अगर ऐरे में मौजूद कोई भी संख्यात्मक वैल्यू NaN है, तो फ़ंक्शन NaN दिखाता है.
  • रिटर्न टाइप, ऐरे में मौजूद सबसे बड़े न्यूमेरिक टाइप से तय होता है: INT64 < FLOAT64.
  • अगर फ़्लोटिंग पॉइंट वैल्यू को जोड़ने से पहले 64-बिट पूर्णांक ओवरफ़्लो हो जाता है, तो गड़बड़ी वाला मान दिखता है. अगर फ़्लोटिंग पॉइंट वैल्यू को जोड़ा जाता है, तो ओवरफ़्लो होने पर नतीजा +/- इनफ़िनिटी होगा.
  • अगर ऐरे में कोई भी संख्या मौजूद नहीं है, तो फ़ंक्शन NULL दिखाता है.

उदाहरण:

कलेक्शन 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] गड़बड़ी
[INT64.MAX_VALUE, 1, -1.0] गड़बड़ी
[INT64.MAX_VALUE, 1.0] 9.223372036854776e+18

JOIN

सिंटैक्स:

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 दिया गया है, तो array में मौजूद NULL वैल्यू को null_text से बदल दिया जाता है.
  • अगर null_text नहीं दिया गया है, तो array में मौजूद NULL वैल्यू को नतीजे से हटा दिया जाता है.

उदाहरण:

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" गड़बड़ी