Aggregate
सभी एग्रीगेट फ़ंक्शन का इस्तेमाल, aggregate(...) स्टेज में टॉप-लेवल एक्सप्रेशन के तौर पर किया जा सकता है.
| नाम | ब्यौरा |
COUNT
|
यह फ़ंक्शन, दस्तावेज़ों की संख्या दिखाता है. |
COUNT_IF
|
यह उन दस्तावेज़ों की संख्या दिखाता है जिनमें एक्सप्रेशन की वैल्यू TRUE होती है
|
COUNT_DISTINCT
|
यह फ़ंक्शन, यूनीक और नॉन NULL वैल्यू की संख्या दिखाता है
|
SUM
|
सभी NUMERIC वैल्यू का योग दिखाता है
|
AVERAGE
|
NUMERIC की सभी वैल्यू का औसत दिखाता है
|
MINIMUM
|
NULL के अलावा अन्य सबसे कम वैल्यू दिखाता है
|
MAXIMUM
|
यह फ़ंक्शन, सबसे बड़ी नॉन-NULL वैल्यू दिखाता है
|
FIRST
|
पहले दस्तावेज़ के लिए expression वैल्यू दिखाता है.
|
LAST
|
यह फ़ंक्शन, आखिरी दस्तावेज़ के लिए expression वैल्यू दिखाता है.
|
ARRAY_AGG
|
यह सभी इनपुट वैल्यू का ऐरे दिखाता है. |
ARRAY_AGG_DISTINCT
|
यह फ़ंक्शन, इनपुट की सभी अलग-अलग वैल्यू का ऐरे दिखाता है. |
COUNT
सिंटैक्स:
count() -> INT64
count(expression: ANY) -> INT64
ब्यौरा:
यह फ़ंक्शन, पिछली स्टेज के उन दस्तावेज़ों की संख्या दिखाता है जिनमें expression
की वैल्यू, NULL के अलावा कोई और वैल्यू होती है. अगर कोई expression नहीं दिया जाता है, तो यह पिछली स्टेज के दस्तावेज़ों की कुल संख्या दिखाता है.
Node.js
// Total number of books in the collection const countOfAll = await db.pipeline() .collection("books") .aggregate(countAll().as("count")) .execute(); // Number of books with nonnull `ratings` field const countField = await db.pipeline() .collection("books") .aggregate(field("ratings").count().as("count")) .execute();
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() )
Java
// Total number of books in the collection Pipeline.Snapshot countAll = firestore.pipeline().collection("books").aggregate(countAll().as("count")).execute().get(); // Number of books with nonnull `ratings` field Pipeline.Snapshot countField = firestore .pipeline() .collection("books") .aggregate(count("ratings").as("count")) .execute() .get();
COUNT_IF
सिंटैक्स:
count_if(expression: BOOLEAN) -> INT64
ब्यौरा:
यह फ़ंक्शन, पिछली स्टेज के उन दस्तावेज़ों की संख्या दिखाता है जिनमें expression की वैल्यू TRUE है.
Node.js
const result = await db.pipeline() .collection("books") .aggregate( field("rating").greaterThan(4).countIf().as("filteredCount") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .aggregate(countIf(field("rating").greaterThan(4)).as("filteredCount")) .execute() .get();
COUNT_DISTINCT
सिंटैक्स:
count_distinct(expression: ANY) -> INT64
ब्यौरा:
यह फ़ंक्शन, expression की उन यूनीक वैल्यू की संख्या दिखाता है जो NULL और ABSENT नहीं हैं.
Node.js
const result = await db.pipeline() .collection("books") .aggregate(field("author").countDistinct().as("unique_authors")) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .aggregate(countDistinct("author").as("unique_authors")) .execute() .get();
SUM
सिंटैक्स:
sum(expression: ANY) -> NUMBER
ब्यौरा:
यह फ़ंक्शन, संख्या वाली सभी वैल्यू का योग दिखाता है. इसमें, बिना संख्या वाली वैल्यू को शामिल नहीं किया जाता. अगर कोई भी वैल्यू NaN है, तो NaN दिखाता है.
आउटपुट का टाइप, सबसे बड़े इनपुट टाइप के जैसा ही होगा. हालांकि, इन मामलों में ऐसा नहीं होगा:
- अगर किसी
INTEGERकोINTEGERके तौर पर नहीं दिखाया जा सकता, तो उसेDOUBLEमें बदल दिया जाएगा.
Node.js
const result = await db.pipeline() .collection("cities") .aggregate(field("population").sum().as("totalPopulation")) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("cities") .aggregate(sum("population").as("totalPopulation")) .execute() .get();
औसत
सिंटैक्स:
average(expression: ANY) -> FLOAT64
ब्यौरा:
यह फ़ंक्शन, संख्या वाली सभी वैल्यू का औसत दिखाता है. इसमें बिना संख्या वाली वैल्यू को शामिल नहीं किया जाता.
अगर कोई वैल्यू NaN है, तो NaN के तौर पर नतीजे दिखाता है. अगर कोई संख्यात्मक वैल्यू एग्रीगेट नहीं की गई है, तो NULL के तौर पर नतीजे दिखाता है.
आउटपुट का टाइप, इनपुट के टाइप जैसा ही होगा. हालांकि, इन मामलों में ऐसा नहीं होगा:
- अगर किसी
INTEGERकोINTEGERके तौर पर नहीं दिखाया जा सकता, तो उसेDOUBLEमें बदल दिया जाएगा.
Node.js
const result = await db.pipeline() .collection("cities") .aggregate(field("population").average().as("averagePopulation")) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("cities") .aggregate(average("population").as("averagePopulation")) .execute() .get();
कम से कम
सिंटैक्स:
minimum(expression: ANY) -> ANY
ब्यौरा:
यह फ़ंक्शन, हर दस्तावेज़ का आकलन करने के बाद, expression की सबसे छोटी वैल्यू दिखाता है. हालांकि, यह वैल्यू NULL नहीं होनी चाहिए और न ही 'मौजूद नहीं है' के तौर पर मार्क की गई होनी चाहिए.
अगर NULL और 'मौजूद नहीं है' के अलावा कोई दूसरी वैल्यू नहीं है, तो NULL दिखता है. इसमें ऐसे मामले भी शामिल हैं जिनमें कोई दस्तावेज़ नहीं माना जाता.
अगर एक से ज़्यादा वैल्यू, सबसे कम वैल्यू के बराबर हैं, तो उनमें से कोई भी वैल्यू दिखाई जा सकती है. वैल्यू टाइप का क्रम, दस्तावेज़ में दिए गए क्रम के हिसाब से होता है.
Node.js
const result = await db.pipeline() .collection("books") .aggregate(field("price").minimum().as("minimumPrice")) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .aggregate(minimum("price").as("minimumPrice")) .execute() .get();
ज़्यादा से ज़्यादा
सिंटैक्स:
maximum(expression: ANY) -> ANY
ब्यौरा:
यह फ़ंक्शन, हर दस्तावेज़ का आकलन करने पर, expression की सबसे बड़ी ऐसी वैल्यू दिखाता है जो NULL नहीं है और मौजूद है.
अगर NULL और 'मौजूद नहीं है' के अलावा कोई दूसरी वैल्यू नहीं है, तो NULL दिखता है. इसमें ऐसे मामले भी शामिल हैं जिनमें कोई दस्तावेज़ नहीं माना जाता.
अगर सबसे ज़्यादा बार दिखने वाली वैल्यू एक से ज़्यादा हैं, तो उनमें से कोई भी वैल्यू दिखाई जा सकती है. वैल्यू टाइप का क्रम, दस्तावेज़ में दिए गए क्रम के हिसाब से होता है.
Node.js
const result = await db.pipeline() .collection("books") .aggregate(field("price").maximum().as("maximumPrice")) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .aggregate(maximum("price").as("maximumPrice")) .execute() .get();
FIRST
सिंटैक्स:
first(expression: ANY) -> ANY
ब्यौरा:
यह फ़ंक्शन, पहले दिखाए गए दस्तावेज़ के लिए expression की वैल्यू दिखाता है.
LAST
सिंटैक्स:
last(expression: ANY) -> ANY
ब्यौरा:
यह फ़ंक्शन, आखिरी बार दिखाए गए दस्तावेज़ के लिए expression की वैल्यू दिखाता है.
ARRAY_AGG
सिंटैक्स:
array_agg(expression: ANY) -> ARRAY<ANY>
ब्यौरा:
यह एक ऐसा ऐरे दिखाता है जिसमें हर दस्तावेज़ का आकलन करने पर, expression की सभी वैल्यू शामिल होती हैं.
अगर एक्सप्रेशन से कोई वैल्यू नहीं मिलती है, तो उसे NULL में बदल दिया जाता है.
आउटपुट ऐरे में एलिमेंट का क्रम स्थिर नहीं होता. इसलिए, इस पर भरोसा नहीं किया जाना चाहिए.
ARRAY_AGG_DISTINCT
सिंटैक्स:
array_agg_distinct(expression: ANY) -> ARRAY<ANY>
ब्यौरा:
यह हर दस्तावेज़ पर आकलन किए जाने पर, expression की सभी अलग-अलग वैल्यू वाला एक ऐरे दिखाता है.
अगर एक्सप्रेशन से कोई वैल्यू नहीं मिलती है, तो उसे NULL में बदल दिया जाता है.
आउटपुट ऐरे में एलिमेंट का क्रम स्थिर नहीं होता. इसलिए, इस पर भरोसा नहीं किया जाना चाहिए.
अंकगणित वाले फ़ंक्शन
Cloud Firestore में मौजूद सभी अंकगणितीय फ़ंक्शन, इस तरह काम करते हैं:
- अगर इनपुट पैरामीटर में से कोई भी
NULLहै, तो यह फ़ंक्शनNULLदिखाता है. - अगर कोई भी आर्ग्युमेंट
NaNहै, तो यह फ़ंक्शनNaNदिखाता है. - अगर ओवरफ़्लो या अंडरफ़्लो होता है, तो यह फ़ंक्शन गड़बड़ी जनरेट करता है.
इसके अलावा, जब कोई अंकगणितीय फ़ंक्शन अलग-अलग टाइप के कई संख्यात्मक आर्ग्युमेंट लेता है (उदाहरण के लिए: add(5.0, 6)), तो Cloud Firestore आर्ग्युमेंट को सबसे बड़े इनपुट टाइप में बदल देता है. अगर सिर्फ़ INT32 इनपुट दिए जाते हैं, तो रिटर्न टाइप INT64 होगा.
| नाम | ब्यौरा |
ABS
|
किसी number की ऐब्सलूट वैल्यू दिखाता है
|
ADD
|
x + y की वैल्यू दिखाता है
|
SUBTRACT
|
x - y की वैल्यू दिखाता है
|
MULTIPLY
|
x * y की वैल्यू दिखाता है
|
DIVIDE
|
x / y की वैल्यू दिखाता है
|
MOD
|
x / y को से भाग देने पर मिलने वाला शेषफल दिखाता है
|
CEIL
|
किसी number की सीलिंग वैल्यू दिखाता है
|
FLOOR
|
यह फ़ंक्शन, number की फ़्लोर वैल्यू दिखाता है
|
ROUND
|
number को places दशमलव स्थानों तक पूर्णांक बनाता है
|
TRUNC
|
यह फ़ंक्शन, number को places दशमलव स्थानों तक काटता है
|
POW
|
base^exponent की वैल्यू दिखाता है
|
SQRT
|
number का वर्गमूल दिखाता है
|
EXP
|
यूलर की संख्या को exponent की घात में बढ़ाता है
|
LN
|
किसी number का नैचुरल लॉगारिद्म दिखाता है
|
LOG
|
किसी संख्या का लॉगारिद्म दिखाता है number
|
LOG10
|
10 के आधार पर number का लॉगरिद्म दिखाता है
|
RAND
|
यह फ़ंक्शन, फ़्लोटिंग पॉइंट वाली कोई छद्म-यादृच्छिक संख्या दिखाता है |
ABS
सिंटैक्स:
abs[N <: INT32 | INT64 | FLOAT64](number: N) -> N
ब्यौरा:
number की ऐब्सलूट वैल्यू दिखाता है.
- जब फ़ंक्शन,
INT32याINT64वैल्यू से ज़्यादा हो जाता है, तब यह गड़बड़ी दिखाता है.
उदाहरण:
| नंबर | abs(number) |
|---|---|
| 10 | 10 |
| -10 | 10 |
| 10 लाख | 10 लाख |
| -0.0 | 0.0 |
| 10.5 | 10.5 |
| -10.5 | 10.5 |
| -231 | [error] |
| -263 | [error] |
जोड़ें
सिंटैक्स:
add[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
ब्यौरा:
x + y की वैल्यू दिखाता है.
उदाहरण:
| x | साल | add(x, y) |
|---|---|---|
| 20 | 3 | 23 |
| 10.0 | 1 | 11.0 |
| 22.5 | 2.0 | 24.5 |
| INT64.MAX | 1 | [error] |
| INT64.MIN | -1 | [error] |
Node.js
const result = await db.pipeline() .collection("books") .select(field("soldBooks").add(field("unsoldBooks")).as("totalBooks")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("soldBooks").add(field("unsoldBooks")).as("totalBooks")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("soldBooks").add(Field("unsoldBooks")).as("totalBooks")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(Expression.add(field("soldBooks"), field("unsoldBooks")).alias("totalBooks")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(Expression.add(field("soldBooks"), field("unsoldBooks")).alias("totalBooks")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("soldBooks").add(Field.of("unsoldBooks")).as_("totalBooks")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(add(field("soldBooks"), field("unsoldBooks")).as("totalBooks")) .execute() .get();
SUBTRACT
सिंटैक्स:
subtract[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
ब्यौरा:
x - y की वैल्यू दिखाता है.
उदाहरण:
| x | साल | subtract(x, y) |
|---|---|---|
| 20 | 3 | 17 |
| 10.0 | 1 | 9.0 |
| 22.5 | 2.0 | 20.5 |
| INT64.MAX | -1 | [error] |
| INT64.MIN | 1 | [error] |
Node.js
const storeCredit = 7; const result = await db.pipeline() .collection("books") .select(field("price").subtract(constant(storeCredit)).as("totalCost")) .execute();
Web
const storeCredit = 7; const result = await execute(db.pipeline() .collection("books") .select(field("price").subtract(constant(storeCredit)).as("totalCost")) );
Swift
let storeCredit = 7 let result = try await db.pipeline() .collection("books") .select([Field("price").subtract(Constant(storeCredit)).as("totalCost")]) .execute()
Kotlin
val storeCredit = 7 val result = db.pipeline() .collection("books") .select(Expression.subtract(field("price"), storeCredit).alias("totalCost")) .execute()
Java
int storeCredit = 7; Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(Expression.subtract(field("price"), storeCredit).alias("totalCost")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field store_credit = 7 result = ( client.pipeline() .collection("books") .select(Field.of("price").subtract(store_credit).as_("totalCost")) .execute() )
Java
int storeCredit = 7; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(subtract(field("price"), storeCredit).as("totalCost")) .execute() .get();
MULTIPLY
सिंटैक्स:
multiply[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
ब्यौरा:
x * y की वैल्यू दिखाता है.
उदाहरण:
| x | साल | multiply(x, y) |
|---|---|---|
| 20 | 3 | 60 |
| 10.0 | 1 | 10.0 |
| 22.5 | 2.0 | 45.0 |
| INT64.MAX | 2 | [error] |
| INT64.MIN | 2 | [error] |
| FLOAT64.MAX | FLOAT64.MAX | +inf |
Node.js
const result = await db.pipeline() .collection("books") .select(field("price").multiply(field("soldBooks")).as("revenue")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("price").multiply(field("soldBooks")).as("revenue")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("price").multiply(Field("soldBooks")).as("revenue")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(Expression.multiply(field("price"), field("soldBooks")).alias("revenue")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(Expression.multiply(field("price"), field("soldBooks")).alias("revenue")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("price").multiply(Field.of("soldBooks")).as_("revenue")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(multiply(field("price"), field("soldBooks")).as("revenue")) .execute() .get();
DIVIDE
सिंटैक्स:
divide[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
ब्यौरा:
x / y की वैल्यू दिखाता है. पूर्णांक भाग को छोटा कर दिया जाता है.
उदाहरण:
| x | साल | divide(x, y) |
|---|---|---|
| 20 | 3 | 6 |
| 10.0 | 3 | 3.333... |
| 22.5 | 2 | 11.25 |
| 10 | 0 | [error] |
| 1.0 | 0.0 | +inf |
| -1.0 | 0.0 | -inf |
Node.js
const result = await db.pipeline() .collection("books") .select(field("ratings").divide(field("soldBooks")).as("reviewRate")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("ratings").divide(field("soldBooks")).as("reviewRate")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("ratings").divide(Field("soldBooks")).as("reviewRate")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(Expression.divide(field("ratings"), field("soldBooks")).alias("reviewRate")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(Expression.divide(field("ratings"), field("soldBooks")).alias("reviewRate")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("ratings").divide(Field.of("soldBooks")).as_("reviewRate")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(divide(field("ratings"), field("soldBooks")).as("reviewRate")) .execute() .get();
MOD
सिंटैक्स:
mod[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
ब्यौरा:
x / y का शेषफल दिखाता है.
- पूर्णांक टाइप (
INT64) के लिए,yके शून्य होने परerrorदिखाता है. - फ़्लोट टाइप (
FLOAT64) के लिएNaNशून्य होने पर,NaNदिखाता है.y
उदाहरण:
| x | साल | mod(x, y) |
|---|---|---|
| 20 | 3 | 2 |
| -10 | 3 | -1 |
| 10 | -3 | 1 |
| -10 | -3 | -1 |
| 10 | 1 | 0 |
| 22.5 | 2 | 0.5 |
| 22.5 | 0.0 | NaN |
| 25 | 0 | [error] |
Node.js
const displayCapacity = 1000; const result = await db.pipeline() .collection("books") .select(field("unsoldBooks").mod(constant(displayCapacity)).as("warehousedBooks")) .execute();
Web
const displayCapacity = 1000; const result = await execute(db.pipeline() .collection("books") .select(field("unsoldBooks").mod(constant(displayCapacity)).as("warehousedBooks")) );
Swift
let displayCapacity = 1000 let result = try await db.pipeline() .collection("books") .select([Field("unsoldBooks").mod(Constant(displayCapacity)).as("warehousedBooks")]) .execute()
Kotlin
val displayCapacity = 1000 val result = db.pipeline() .collection("books") .select(Expression.mod(field("unsoldBooks"), displayCapacity).alias("warehousedBooks")) .execute()
Java
int displayCapacity = 1000; Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(Expression.mod(field("unsoldBooks"), displayCapacity).alias("warehousedBooks")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field display_capacity = 1000 result = ( client.pipeline() .collection("books") .select(Field.of("unsoldBooks").mod(display_capacity).as_("warehousedBooks")) .execute() )
Java
int displayCapacity = 1000; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(mod(field("unsoldBooks"), displayCapacity).as("warehousedBooks")) .execute() .get();
CEIL
सिंटैक्स:
ceil[N <: INT32 | INT64 | FLOAT64](number: N) -> N
ब्यौरा:
यह फ़ंक्शन, सबसे छोटी पूर्णांक वैल्यू दिखाता है जो number से कम नहीं है.
उदाहरण:
| नंबर | ceil(number) |
|---|---|
| 20 | 20 |
| 10 | 10 |
| 0 | 0 |
| 24L | 24L |
| -0.4 | -0.0 |
| 0.4 | 1.0 |
| 22.5 | 23.0 |
+inf |
+inf |
-inf |
-inf |
Node.js
const booksPerShelf = 100; const result = await db.pipeline() .collection("books") .select( field("unsoldBooks").divide(constant(booksPerShelf)).ceil().as("requiredShelves") ) .execute();
Web
const booksPerShelf = 100; const result = await execute(db.pipeline() .collection("books") .select( field("unsoldBooks").divide(constant(booksPerShelf)).ceil().as("requiredShelves") ) );
Swift
let booksPerShelf = 100 let result = try await db.pipeline() .collection("books") .select([ Field("unsoldBooks").divide(Constant(booksPerShelf)).ceil().as("requiredShelves") ]) .execute()
Kotlin
val booksPerShelf = 100 val result = db.pipeline() .collection("books") .select( Expression.divide(field("unsoldBooks"), booksPerShelf).ceil().alias("requiredShelves") ) .execute()
Java
int booksPerShelf = 100; Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( Expression.divide(field("unsoldBooks"), booksPerShelf).ceil().alias("requiredShelves") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field books_per_shelf = 100 result = ( client.pipeline() .collection("books") .select( Field.of("unsoldBooks") .divide(books_per_shelf) .ceil() .as_("requiredShelves") ) .execute() )
Java
int booksPerShelf = 100; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(ceil(divide(field("unsoldBooks"), booksPerShelf)).as("requiredShelves")) .execute() .get();
FLOOR
सिंटैक्स:
floor[N <: INT32 | INT64 | FLOAT64](number: N) -> N
ब्यौरा:
यह फ़ंक्शन, सबसे बड़ी पूर्णांक वैल्यू दिखाता है जो number से ज़्यादा नहीं है.
उदाहरण:
| नंबर | floor(number) |
|---|---|
| 20 | 20 |
| 10 | 10 |
| 0 | 0 |
| 2147483648 | 2147483648 |
| -0.4 | -1.0 |
| 0.4 | 0.0 |
| 22.5 | 22.0 |
+inf |
+inf |
-inf |
-inf |
Node.js
const result = await db.pipeline() .collection("books") .addFields( field("wordCount").divide(field("pages")).floor().as("wordsPerPage") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .addFields( field("wordCount").divide(field("pages")).floor().as("wordsPerPage") ) );
Swift
let result = try await db.pipeline() .collection("books") .addFields([ Field("wordCount").divide(Field("pages")).floor().as("wordsPerPage") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .addFields( Expression.divide(field("wordCount"), field("pages")).floor().alias("wordsPerPage") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .addFields( Expression.divide(field("wordCount"), field("pages")).floor().alias("wordsPerPage") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .add_fields( Field.of("wordCount").divide(Field.of("pages")).floor().as_("wordsPerPage") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .addFields(floor(divide(field("wordCount"), field("pages"))).as("wordsPerPage")) .execute() .get();
ROUND
सिंटैक्स:
round[N <: INT32 | INT64 | FLOAT64 | DECIMAL128](number: N) -> N
round[N <: INT32 | INT64 | FLOAT64 | DECIMAL128](number: N, places: INT64) -> N
ब्यौरा:
number में से places अंकों को राउंड करता है. अगर places धनात्मक है, तो दशमलव बिंदु के दाईं ओर के अंकों को पूर्णांक में बदलता है. अगर यह ऋणात्मक है, तो दशमलव बिंदु के बाईं ओर के अंकों को पूर्णांक में बदलता है.
- अगर सिर्फ़
numberदिया गया है, तो यह फ़ंक्शन वैल्यू को निकटतम पूर्णांक में बदल देता है. - यह फ़ंक्शन, बीच की वैल्यू को शून्य से दूर वाली पूर्णांक संख्या में बदलता है.
- अगर नेगेटिव
placesवैल्यू का इस्तेमाल करके राउंड करने पर ओवरफ़्लो होता है, तोerrorथ्रो किया जाता है.
उदाहरण:
| नंबर | स्थान | round(number, places) |
|---|---|---|
| 15.5 | 0 | 16.0 |
| -15.5 | 0 | -16.0 |
| 15 | 1 | 15 |
| 15 | 0 | 15 |
| 15 | -1 | 20 |
| 15 | -2 | 0 |
| 15.48924 | 1 | 15.5 |
| 231-1 | -1 | [error] |
| 263-1L | -1 | [error] |
Node.js
const result = await db.pipeline() .collection("books") .select(field("soldBooks").multiply(field("price")).round().as("partialRevenue")) .aggregate(field("partialRevenue").sum().as("totalRevenue")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("soldBooks").multiply(field("price")).round().as("partialRevenue")) .aggregate(field("partialRevenue").sum().as("totalRevenue")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("soldBooks").multiply(Field("price")).round().as("partialRevenue")]) .aggregate([Field("partialRevenue").sum().as("totalRevenue")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(Expression.multiply(field("soldBooks"), field("price")).round().alias("partialRevenue")) .aggregate(AggregateFunction.sum("partialRevenue").alias("totalRevenue")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(Expression.multiply(field("soldBooks"), field("price")).round().alias("partialRevenue")) .aggregate(AggregateFunction.sum("partialRevenue").alias("totalRevenue")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("soldBooks") .multiply(Field.of("price")) .round() .as_("partialRevenue") ) .aggregate(Field.of("partialRevenue").sum().as_("totalRevenue")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(round(multiply(field("soldBooks"), field("price"))).as("partialRevenue")) .aggregate(sum("partialRevenue").as("totalRevenue")) .execute() .get();
TRUNC
सिंटैक्स:
trunc[N <: Number](number: N) -> N
trunc[N <: Number](number: N, places: INT64) -> N
ब्यौरा:
number को places दशमलव स्थानों की तय संख्या तक काट-छांट करता है. अगर places धनात्मक है, तो दशमलव बिंदु के दाईं ओर के अंकों को काटता है. अगर यह ऋणात्मक है, तो दशमलव बिंदु के बाईं ओर के अंकों को काटता है.
- अगर सिर्फ़
numberदिया गया है, तो यह फ़ंक्शन, वैल्यू को शून्य की ओर ले जाकर सबसे नज़दीकी पूर्णांक में बदल देता है. - अगर नतीजे छोटे करने पर भी ओवरफ़्लो होता है, तो
errorदिखता है.
उदाहरण:
| नंबर | स्थान | trunc(number, places) |
|---|---|---|
| 15.5 | 0 | 15.0 |
| -15.5 | 0 | -15.0 |
| 15 | 1 | 15 |
| 15 | 0 | 15 |
| 15 | -1 | 10 |
| 15 | -2 | 0 |
| 15.48924 | 1 | 15.4 |
| -15.48924 | 2 | -15.48 |
POW
सिंटैक्स:
pow(base: FLOAT64, exponent: FLOAT64) -> FLOAT64
ब्यौरा:
base की पावर exponent की वैल्यू दिखाता है.
अगर
base <= 0औरexponentनेगेटिव है, तो गड़बड़ी का मैसेज दिखाता है.किसी भी
exponentके लिए,pow(1, exponent)की वैल्यू 1 होती है.किसी भी
baseके लिए,pow(base, 0)की वैल्यू 1 होती है.
उदाहरण:
| बेस | घातांक | pow(base, exponent) |
|---|---|---|
| 2 | 3 | 8.0 |
| 2 | -3 | 0.125 |
+inf |
0 | 1.0 |
| 1 | +inf |
1.0 |
| -1 | 0.5 | [error] |
| 0 | -1 | [error] |
Node.js
const googleplex = { latitude: 37.4221, longitude: 122.0853 }; const result = await db.pipeline() .collection("cities") .addFields( field("lat").subtract(constant(googleplex.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("latitudeDifference"), field("lng").subtract(constant(googleplex.longitude)) .multiply(111 /* km per degree */) .pow(2) .as("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle") ) .execute();
Web
const googleplex = { latitude: 37.4221, longitude: 122.0853 }; const result = await execute(db.pipeline() .collection("cities") .addFields( field("lat").subtract(constant(googleplex.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("latitudeDifference"), field("lng").subtract(constant(googleplex.longitude)) .multiply(111 /* km per degree */) .pow(2) .as("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle") ) );
Swift
let googleplex = CLLocation(latitude: 37.4221, longitude: 122.0853) let result = try await db.pipeline() .collection("cities") .addFields([ Field("lat").subtract(Constant(googleplex.coordinate.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("latitudeDifference"), Field("lng").subtract(Constant(googleplex.coordinate.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("longitudeDifference") ]) .select([ Field("latitudeDifference").add(Field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle") ]) .execute()
Kotlin
val googleplex = GeoPoint(37.4221, -122.0853) val result = db.pipeline() .collection("cities") .addFields( field("lat").subtract(googleplex.latitude) .multiply(111 /* km per degree */) .pow(2) .alias("latitudeDifference"), field("lng").subtract(googleplex.longitude) .multiply(111 /* km per degree */) .pow(2) .alias("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .alias("approximateDistanceToGoogle") ) .execute()
Java
GeoPoint googleplex = new GeoPoint(37.4221, -122.0853); Task<Pipeline.Snapshot> result = db.pipeline() .collection("cities") .addFields( field("lat").subtract(googleplex.getLatitude()) .multiply(111 /* km per degree */) .pow(2) .alias("latitudeDifference"), field("lng").subtract(googleplex.getLongitude()) .multiply(111 /* km per degree */) .pow(2) .alias("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .alias("approximateDistanceToGoogle") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field googleplexLat = 37.4221 googleplexLng = -122.0853 result = ( client.pipeline() .collection("cities") .add_fields( Field.of("lat") .subtract(googleplexLat) .multiply(111) # km per degree .pow(2) .as_("latitudeDifference"), Field.of("lng") .subtract(googleplexLng) .multiply(111) # km per degree .pow(2) .as_("longitudeDifference"), ) .select( Field.of("latitudeDifference") .add(Field.of("longitudeDifference")) .sqrt() # Inaccurate for large distances or close to poles .as_("approximateDistanceToGoogle") ) .execute() )
Java
double googleplexLat = 37.4221; double googleplexLng = -122.0853; Pipeline.Snapshot result = firestore .pipeline() .collection("cities") .addFields( pow(multiply(subtract(field("lat"), googleplexLat), 111), 2) .as("latitudeDifference"), pow(multiply(subtract(field("lng"), googleplexLng), 111), 2) .as("longitudeDifference")) .select( sqrt(add(field("latitudeDifference"), field("longitudeDifference"))) // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle")) .execute() .get();
SQRT
सिंटैक्स:
sqrt[N <: FLOAT64 | DECIMAL128](number: N) -> N
ब्यौरा:
number का वर्गमूल दिखाता है.
- अगर
numberकी वैल्यू नेगेटिव है, तो यह फ़ंक्शनerrorदिखाता है.
उदाहरण:
| नंबर | sqrt(number) |
|---|---|
| 25 | 5.0 |
| 12.002 | 3.464... |
| 0.0 | 0.0 |
NaN |
NaN |
+inf |
+inf |
-inf |
[error] |
x < 0 |
[error] |
Node.js
const googleplex = { latitude: 37.4221, longitude: 122.0853 }; const result = await db.pipeline() .collection("cities") .addFields( field("lat").subtract(constant(googleplex.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("latitudeDifference"), field("lng").subtract(constant(googleplex.longitude)) .multiply(111 /* km per degree */) .pow(2) .as("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle") ) .execute();
Web
const googleplex = { latitude: 37.4221, longitude: 122.0853 }; const result = await execute(db.pipeline() .collection("cities") .addFields( field("lat").subtract(constant(googleplex.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("latitudeDifference"), field("lng").subtract(constant(googleplex.longitude)) .multiply(111 /* km per degree */) .pow(2) .as("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle") ) );
Swift
let googleplex = CLLocation(latitude: 37.4221, longitude: 122.0853) let result = try await db.pipeline() .collection("cities") .addFields([ Field("lat").subtract(Constant(googleplex.coordinate.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("latitudeDifference"), Field("lng").subtract(Constant(googleplex.coordinate.latitude)) .multiply(111 /* km per degree */) .pow(2) .as("longitudeDifference") ]) .select([ Field("latitudeDifference").add(Field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle") ]) .execute()
Kotlin
val googleplex = GeoPoint(37.4221, -122.0853) val result = db.pipeline() .collection("cities") .addFields( field("lat").subtract(googleplex.latitude) .multiply(111 /* km per degree */) .pow(2) .alias("latitudeDifference"), field("lng").subtract(googleplex.longitude) .multiply(111 /* km per degree */) .pow(2) .alias("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .alias("approximateDistanceToGoogle") ) .execute()
Java
GeoPoint googleplex = new GeoPoint(37.4221, -122.0853); Task<Pipeline.Snapshot> result = db.pipeline() .collection("cities") .addFields( field("lat").subtract(googleplex.getLatitude()) .multiply(111 /* km per degree */) .pow(2) .alias("latitudeDifference"), field("lng").subtract(googleplex.getLongitude()) .multiply(111 /* km per degree */) .pow(2) .alias("longitudeDifference") ) .select( field("latitudeDifference").add(field("longitudeDifference")).sqrt() // Inaccurate for large distances or close to poles .alias("approximateDistanceToGoogle") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field googleplexLat = 37.4221 googleplexLng = -122.0853 result = ( client.pipeline() .collection("cities") .add_fields( Field.of("lat") .subtract(googleplexLat) .multiply(111) # km per degree .pow(2) .as_("latitudeDifference"), Field.of("lng") .subtract(googleplexLng) .multiply(111) # km per degree .pow(2) .as_("longitudeDifference"), ) .select( Field.of("latitudeDifference") .add(Field.of("longitudeDifference")) .sqrt() # Inaccurate for large distances or close to poles .as_("approximateDistanceToGoogle") ) .execute() )
Java
double googleplexLat = 37.4221; double googleplexLng = -122.0853; Pipeline.Snapshot result = firestore .pipeline() .collection("cities") .addFields( pow(multiply(subtract(field("lat"), googleplexLat), 111), 2) .as("latitudeDifference"), pow(multiply(subtract(field("lng"), googleplexLng), 111), 2) .as("longitudeDifference")) .select( sqrt(add(field("latitudeDifference"), field("longitudeDifference"))) // Inaccurate for large distances or close to poles .as("approximateDistanceToGoogle")) .execute() .get();
EXP
सिंटैक्स:
exp(exponent: FLOAT64) -> FLOAT64
ब्यौरा:
यूलर की संख्या की घात exponent का मान दिखाता है. इसे नैचुरल एक्सपोनेंशियल फ़ंक्शन भी कहा जाता है.
उदाहरण:
| घातांक | exp(exponent) |
|---|---|
| 0.0 | 1.0 |
| 10 | e^10 (FLOAT64) |
+inf |
+inf |
-inf |
0 |
Node.js
const result = await db.pipeline() .collection("books") .select(field("rating").exp().as("expRating")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("rating").exp().as("expRating")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("rating").exp().as("expRating")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("rating").exp().alias("expRating")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("rating").exp().alias("expRating")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").exp().as_("expRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(exp(field("rating")).as("expRating")) .execute() .get();
LN
सिंटैक्स:
ln(number: FLOAT64) -> FLOAT64
ब्यौरा:
number का नैचुरल लॉगारिद्म दिखाता है. यह फ़ंक्शन log(number) के बराबर होता है.
उदाहरण:
| नंबर | ln(number) |
|---|---|
| 1 | 0.0 |
| 2L | 0.693... |
| 1.0 | 0.0 |
e (FLOAT64) |
1.0 |
-inf |
NaN |
+inf |
+inf |
x <= 0 |
[error] |
Node.js
const result = await db.pipeline() .collection("books") .select(field("rating").ln().as("lnRating")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("rating").ln().as("lnRating")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("rating").ln().as("lnRating")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("rating").ln().alias("lnRating")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("rating").ln().alias("lnRating")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").ln().as_("lnRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(ln(field("rating")).as("lnRating")) .execute() .get();
LOG
सिंटैक्स:
log(number: FLOAT64, base: FLOAT64) -> FLOAT64
log(number: FLOAT64) -> FLOAT64
ब्यौरा:
base के हिसाब से number का लॉगारिद्म दिखाता है.
- अगर सिर्फ़
numberदिया गया है, तोbaseके आधार परnumberका लॉगारिद्म दिखाता है. यहln(number)के बराबर होता है.
उदाहरण:
| नंबर | बेस | log(number, base) |
|---|---|---|
| 100 | 10 | 2.0 |
-inf |
Numeric |
NaN |
Numeric. |
+inf |
NaN |
number <= 0 |
Numeric |
[error] |
Numeric |
base <= 0 |
[error] |
Numeric |
1.0 | [error] |
LOG10
सिंटैक्स:
log10(x: FLOAT64) -> FLOAT64
ब्यौरा:
10 के आधार पर number का लॉगारिद्म दिखाता है.
उदाहरण:
| नंबर | log10(number) |
|---|---|
| 100 | 2.0 |
-inf |
NaN |
+inf |
+inf |
x <= 0 |
[error] |
RAND
सिंटैक्स:
rand() -> FLOAT64
ब्यौरा:
यह फ़ंक्शन, 0.0 (शामिल) और 1.0 (शामिल नहीं) के बीच का कोई फ़्लोटिंग पॉइंट नंबर दिखाता है. यह नंबर, छद्म-यादृच्छिक तरीके से चुना जाता है.
ऐरे फ़ंक्शन
| नाम | ब्यौरा |
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
|
किसी ARRAY में मौजूद पहले n एलिमेंट दिखाता है
|
ARRAY_GET
|
ARRAY में मौजूद किसी इंडेक्स पर मौजूद एलिमेंट दिखाता है
|
ARRAY_INDEX_OF
|
इस फ़ंक्शन से, ARRAY में किसी वैल्यू की पहली बार दिखने का इंडेक्स मिलता है
|
ARRAY_INDEX_OF_ALL
|
ARRAY में किसी वैल्यू के सभी इंडेक्स दिखाता है
|
ARRAY_LENGTH
|
यह फ़ंक्शन, ARRAY में मौजूद एलिमेंट की संख्या दिखाता है
|
ARRAY_LAST
|
यह फ़ंक्शन, ARRAY में मौजूद आखिरी एलिमेंट दिखाता है
|
ARRAY_LAST_N
|
यह फ़ंक्शन, ARRAY में मौजूद आखिरी n एलिमेंट दिखाता है
|
ARRAY_REVERSE
|
यह फ़ंक्शन, ARRAY में मौजूद एलिमेंट का क्रम उलट देता है
|
ARRAY_SLICE
|
ARRAY का स्लाइस दिखाता है
|
ARRAY_TRANSFORM
|
यह ARRAY में मौजूद एलिमेंट में बदलाव करता है. इसके लिए, हर एलिमेंट पर एक्सप्रेशन लागू किया जाता है
|
MAXIMUM
|
ARRAY एट्रिब्यूट की सबसे बड़ी वैल्यू दिखाता है
|
MAXIMUM_N
|
ARRAY में मौजूद n सबसे बड़ी वैल्यू दिखाता है
|
MINIMUM
|
ARRAY में मौजूद सबसे छोटी वैल्यू दिखाता है
|
MINIMUM_N
|
n में मौजूद सबसे छोटी वैल्यू दिखाता है 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_FILTER
सिंटैक्स:
array_filter(array: ARRAY, predicate: (ANY) -> BOOLEAN) -> ARRAY
ब्यौरा:
predicate एक्सप्रेशन का इस्तेमाल करके, array को फ़िल्टर करता है. साथ ही, सिर्फ़ उन एलिमेंट के साथ एक नई अरे दिखाता है जो प्रेडिकेट को पूरा करते हैं.
arrayमें मौजूद हर एलिमेंट के लिए,predicateका आकलन किया जाता है. अगर यहtrueदिखाता है, तो एलिमेंट को नतीजे में शामिल किया जाता है. अगर यहfalseयाnullदिखाता है, तो इसे शामिल नहीं किया जाता.- अगर
predicateकी वैल्यू, बूलियन या शून्य नहीं है, तो फ़ंक्शन एक गड़बड़ी दिखाता है.
उदाहरण:
| कलेक्शन | प्रीडिकेट | 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
सिंटैक्स:
array_get(array: ARRAY, index: INT64) -> ANY
ब्यौरा:
यह array में मौजूद, शून्य पर आधारित इंडेक्स index पर मौजूद एलिमेंट दिखाता है.
- अगर
indexकी वैल्यू नेगेटिव है, तो ऐरे के आखिर से एलिमेंट ऐक्सेस किए जाते हैं. इसमें-1आखिरी एलिमेंट होता है. - अगर
array,ARRAYटाइप का नहीं है औरnullनहीं है, तो गड़बड़ी दिखाता है. - अगर
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();
ARRAY_FIRST
सिंटैक्स:
array_first(array: ARRAY) -> ANY
ब्यौरा:
array में मौजूद पहला एलिमेंट दिखाता है. यह array_get(array, 0) के बराबर है.
- अगर
arrayखाली है, तो 'मौजूद नहीं है' वैल्यू दिखाता है.
उदाहरण:
| कलेक्शन | array_first(array) |
|---|---|
| [1, 2, 3] | 1 |
| [] | अनुपस्थित |
ARRAY_FIRST_N
सिंटैक्स:
array_first_n(array: ARRAY, n: INT64) -> ARRAY
ब्यौरा:
array के पहले n एलिमेंट दिखाता है. यह array_slice(array, 0, n) के बराबर है.
- अगर
nनेगेटिव है, तो गड़बड़ी का मैसेज दिखता है.
उदाहरण:
| कलेक्शन | 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
सिंटैक्स:
array_index_of(array: ARRAY, value: ANY) -> INT64
ब्यौरा:
array में value के पहले इंस्टेंस का इंडेक्स दिखाता है. यह इंडेक्स 0 से शुरू होता है. अगर value नहीं मिलता है, तो -1 दिखाता है.
उदाहरण:
| कलेक्शन | value | array_index_of(array, value) |
|---|---|---|
| [1, 2, 3, 2] | 2 | 1 |
| [1, 2, 3] | 4 | -1 |
| [1, null, 3] | शून्य | 1 |
ARRAY_INDEX_OF_ALL
सिंटैक्स:
array_index_of_all(array: ARRAY, value: ANY) -> ARRAY<INT64>
ब्यौरा:
यह फ़ंक्शन, एक कैटगरी दिखाता है. इसमें array में मौजूद value की सभी घटनाओं के इंडेक्स होते हैं. ये इंडेक्स, 0 से शुरू होते हैं. अगर value नहीं मिलता है, तो [] दिखाता है.
उदाहरण:
| कलेक्शन | value | array_index_of_all(array, value) |
|---|---|---|
| [1, 2, 3, 2] | 2 | [1, 3] |
| [1, 2, 3] | 4 | [] |
| [1, null, 3, null] | शून्य | [1, 3] |
ARRAY_LAST
सिंटैक्स:
array_last(array: ARRAY) -> ANY
ब्यौरा:
array में मौजूद आखिरी एलिमेंट दिखाता है. यह array_get(array, -1) के बराबर है.
- अगर
arrayखाली है, तो 'मौजूद नहीं है' वैल्यू दिखाता है.
उदाहरण:
| कलेक्शन | array_last(array) |
|---|---|
| [1, 2, 3] | 3 |
| [] | अनुपस्थित |
ARRAY_LAST_N
सिंटैक्स:
array_last_n(array: ARRAY, n: INT64) -> ARRAY
ब्यौरा:
यह फ़ंक्शन, n के आखिरी n एलिमेंट दिखाता है.array
- अगर
nनेगेटिव है, तो गड़बड़ी का मैसेज दिखता है.
उदाहरण:
| कलेक्शन | 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
सिंटैक्स:
array_slice(array: ARRAY, offset: INT64, length: INT64) -> ARRAY
ब्यौरा:
यह फ़ंक्शन, array का सबसेट दिखाता है. यह 0 पर आधारित इंडेक्स offset से शुरू होता है और इसमें length एलिमेंट शामिल होते हैं.
- अगर
offsetनेगेटिव है, तो इससे पता चलता है कि ऐरे के आखिर से शुरू होने वाली पोज़िशन,-1है. - अगर
lengthकी वैल्यू,offsetके बाद ऐरे में बचे हुए एलिमेंट की संख्या से ज़्यादा है, तो नतीजा ऐरे के आखिर तक दिखता है. lengthकी वैल्यू, ज़ीरो (शून्य) से कम नहीं होनी चाहिए. ऐसा न होने पर, गड़बड़ी का मैसेज दिखता है.
उदाहरण:
| कलेक्शन | ऑफ़सेट | लंबाई | 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
सिंटैक्स:
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के हर एलिमेंट और उसके 0 पर आधारित इंडेक्स के साथ कॉल किया जाता है.
उदाहरण:
| कलेक्शन | एक्सप्रेशन | 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 | [] |
ज़्यादा से ज़्यादा
सिंटैक्स:
maximum(array: ARRAY) -> ANY
ब्यौरा:
यह फ़ंक्शन, array में मौजूद सबसे बड़ी वैल्यू दिखाता है.
- तुलना करते समय,
NULLवैल्यू को अनदेखा कर दिया जाता है. - अगर
arrayखाली है या इसमें सिर्फ़NULLवैल्यू हैं, तोNULLदिखाता है.
उदाहरण:
| कलेक्शन | maximum(array) |
|---|---|
| [1, 5, 2] | 5 |
| [1, null, 5] | 5 |
| ["a", "c", "b"] | "c" |
| [null, null] | शून्य |
| [] | शून्य |
MAXIMUM_N
सिंटैक्स:
maximum_n(array: ARRAY, n: INT64) -> ARRAY
ब्यौरा:
यह फ़ंक्शन, array में मौजूद n सबसे बड़ी वैल्यू का अरे दिखाता है. यह अरे, घटते क्रम में होता है.
NULLवैल्यू को अनदेखा किया जाता है.- अगर
nनेगेटिव है, तो गड़बड़ी का मैसेज दिखता है.
उदाहरण:
| कलेक्शन | n | maximum_n(array, n) |
|---|---|---|
| [1, 5, 2, 4, 3] | 3 | [5, 4, 3] |
| [1, null, 5] | 3 | [5, 1] |
कम से कम
सिंटैक्स:
minimum(array: ARRAY) -> ANY
ब्यौरा:
array में मौजूद सबसे छोटी वैल्यू दिखाता है.
- तुलना करते समय,
NULLवैल्यू को अनदेखा कर दिया जाता है. - अगर
arrayखाली है या इसमें सिर्फ़NULLवैल्यू हैं, तोNULLदिखाता है.
उदाहरण:
| कलेक्शन | minimum(array) |
|---|---|
| [1, 5, 2] | 1 |
| [5, null, 1] | 1 |
| ["a", "c", "b"] | "a" |
| [null, null] | शून्य |
| [] | शून्य |
MINIMUM_N
सिंटैक्स:
minimum_n(array: ARRAY, n: INT64) -> ARRAY
ब्यौरा:
यह फ़ंक्शन, array में मौजूद n सबसे छोटी वैल्यू का एक ऐसा कलेक्शन दिखाता है जिसमें वैल्यू बढ़ते क्रम में होती हैं.
NULLवैल्यू को अनदेखा किया जाता है.- अगर
nनेगेटिव है, तो गड़बड़ी का मैसेज दिखता है.
उदाहरण:
| कलेक्शन | n | minimum_n(array, n) |
|---|---|---|
| [1, 5, 2, 4, 3] | 3 | [1, 2, 3] |
| [5, null, 1] | 3 | [1, 5] |
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" | गड़बड़ी |
तुलना करने वाले फ़ंक्शन
| नाम | ब्यौरा |
EQUAL
|
तुलना करना |
GREATER_THAN
|
तुलना में ज़्यादा |
GREATER_THAN_OR_EQUAL
|
इससे ज़्यादा या इसके बराबर तुलना |
LESS_THAN
|
तुलना के लिए इस्तेमाल किए जाने वाले ऑपरेटर से कम |
LESS_THAN_OR_EQUAL
|
इससे कम या इसके बराबर तुलना |
NOT_EQUAL
|
तुलना में बराबर नहीं है |
CMP
|
सामान्य तुलना |
बराबर
सिंटैक्स:
equal(x: ANY, y: ANY) -> BOOLEAN
उदाहरण:
x |
y |
equal(x, y) |
|---|---|---|
| 1L | 1L | TRUE |
| 1.0 | 1L | TRUE |
| -1.0 | 1L | FALSE |
| NaN | NaN | TRUE |
NULL |
NULL |
TRUE |
NULL |
ABSENT |
FALSE |
ब्यौरा:
अगर x और y बराबर हैं, तो TRUE दिखाता है. अगर बराबर नहीं हैं, तो FALSE दिखाता है.
Node.js
const result = await db.pipeline() .collection("books") .select(field("rating").equal(5).as("hasPerfectRating")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("rating").equal(5).as("hasPerfectRating")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("rating").equal(5).as("hasPerfectRating")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("rating").equal(5).alias("hasPerfectRating")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("rating").equal(5).alias("hasPerfectRating")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").equal(5).as_("hasPerfectRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(equal(field("rating"), 5).as("hasPerfectRating")) .execute() .get();
GREATER_THAN
सिंटैक्स:
greater_than(x: ANY, y: ANY) -> BOOLEAN
ब्यौरा:
अगर x का मान y से ज़्यादा है, तो TRUE दिखाता है. अगर ऐसा नहीं है, तो FALSE दिखाता है.
अगर x और y की तुलना नहीं की जा सकती, तो FALSE दिखाता है.
उदाहरण:
x |
y |
greater_than(x, y) |
|---|---|---|
| 1L | 0.0 | TRUE |
| 1L | 1L | FALSE |
| 1L | 2L | FALSE |
| "foo" | 0L | FALSE |
| 0L | "foo" | FALSE |
| NaN | 0L | FALSE |
| 0L | NaN | FALSE |
NULL |
NULL |
FALSE |
Node.js
const result = await db.pipeline() .collection("books") .select(field("rating").greaterThan(4).as("hasHighRating")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("rating").greaterThan(4).as("hasHighRating")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("rating").greaterThan(4).as("hasHighRating")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("rating").greaterThan(4).alias("hasHighRating")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("rating").greaterThan(4).alias("hasHighRating")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").greater_than(4).as_("hasHighRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(greaterThan(field("rating"), 4).as("hasHighRating")) .execute() .get();
GREATER_THAN_OR_EQUAL
सिंटैक्स:
greater_than_or_equal(x: ANY, y: ANY) -> BOOLEAN
ब्यौरा:
अगर x का मान y से ज़्यादा या इसके बराबर है, तो TRUE दिखाता है. अगर ऐसा नहीं है, तो FALSE दिखाता है.
अगर x और y की तुलना नहीं की जा सकती, तो FALSE दिखाता है.
उदाहरण:
x |
y |
greater_than_or_equal(x, y) |
|---|---|---|
| 1L | 0.0 | TRUE |
| 1L | 1L | TRUE |
| 1L | 2L | FALSE |
| "foo" | 0L | FALSE |
| 0L | "foo" | FALSE |
| NaN | 0L | FALSE |
| 0L | NaN | FALSE |
NULL |
NULL |
TRUE |
Node.js
const result = await db.pipeline() .collection("books") .select(field("published").greaterThanOrEqual(1900).as("publishedIn20thCentury")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("published").greaterThanOrEqual(1900).as("publishedIn20thCentury")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("published").greaterThanOrEqual(1900).as("publishedIn20thCentury")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("published").greaterThanOrEqual(1900).alias("publishedIn20thCentury")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("published").greaterThanOrEqual(1900).alias("publishedIn20thCentury")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("published") .greater_than_or_equal(1900) .as_("publishedIn20thCentury") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(greaterThanOrEqual(field("published"), 1900).as("publishedIn20thCentury")) .execute() .get();
LESS_THAN
सिंटैक्स:
less_than(x: ANY, y: ANY) -> BOOLEAN
ब्यौरा:
अगर x का मान y से कम है, तो TRUE दिखाता है. अगर x का मान y से कम नहीं है, तो FALSE दिखाता है.
अगर x और y की तुलना नहीं की जा सकती, तो FALSE दिखाता है.
उदाहरण:
x |
y |
less_than(x, y) |
|---|---|---|
| 1L | 0.0 | FALSE |
| 1L | 1L | FALSE |
| 1L | 2L | TRUE |
| "foo" | 0L | FALSE |
| 0L | "foo" | FALSE |
| NaN | 0L | FALSE |
| 0L | NaN | FALSE |
NULL |
NULL |
FALSE |
Node.js
const result = await db.pipeline() .collection("books") .select(field("published").lessThan(1923).as("isPublicDomainProbably")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("published").lessThan(1923).as("isPublicDomainProbably")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("published").lessThan(1923).as("isPublicDomainProbably")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("published").lessThan(1923).alias("isPublicDomainProbably")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("published").lessThan(1923).alias("isPublicDomainProbably")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("published").less_than(1923).as_("isPublicDomainProbably")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(lessThan(field("published"), 1923).as("isPublicDomainProbably")) .execute() .get();
LESS_THAN_OR_EQUAL
सिंटैक्स:
less_than_or_equal(x: ANY, y: ANY) -> BOOLEAN
ब्यौरा:
अगर x का मान y से कम या इसके बराबर है, तो TRUE दिखाता है. अगर ऐसा नहीं है, तो FALSE दिखाता है.
अगर x और y की तुलना नहीं की जा सकती, तो FALSE दिखाता है.
उदाहरण:
x |
y |
less_than(x, y) |
|---|---|---|
| 1L | 0.0 | FALSE |
| 1L | 1L | TRUE |
| 1L | 2L | TRUE |
| "foo" | 0L | FALSE |
| 0L | "foo" | FALSE |
| NaN | 0L | FALSE |
| 0L | NaN | FALSE |
NULL |
NULL |
TRUE |
Node.js
const result = await db.pipeline() .collection("books") .select(field("rating").lessThanOrEqual(2).as("hasBadRating")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("rating").lessThanOrEqual(2).as("hasBadRating")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("rating").lessThanOrEqual(2).as("hasBadRating")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("rating").lessThanOrEqual(2).alias("hasBadRating")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("rating").lessThanOrEqual(2).alias("hasBadRating")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").less_than_or_equal(2).as_("hasBadRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(lessThanOrEqual(field("rating"), 2).as("hasBadRating")) .execute() .get();
NOT_EQUAL
सिंटैक्स:
not_equal(x: ANY, y: ANY) -> BOOLEAN
ब्यौरा:
अगर x, y के बराबर नहीं है, तो TRUE दिखाता है. अगर x, y के बराबर है, तो FALSE दिखाता है.
उदाहरण:
x |
y |
not_equal(x, y) |
|---|---|---|
| 1L | 1L | FALSE |
| 1.0 | 1L | FALSE |
| -1.0 | 1L | TRUE |
| NaN | 0L | TRUE |
| NaN | NaN | FALSE |
NULL |
NULL |
FALSE |
NULL |
ABSENT |
TRUE |
Node.js
const result = await db.pipeline() .collection("books") .select(field("title").notEqual("1984").as("not1984")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("title").notEqual("1984").as("not1984")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("title").notEqual("1984").as("not1984")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("title").notEqual("1984").alias("not1984")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("title").notEqual("1984").alias("not1984")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").not_equal("1984").as_("not1984")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(notEqual(field("title"), "1984").as("not1984")) .execute() .get();
CMP
सिंटैक्स:
cmp(x: ANY, y: ANY) -> Int64
ब्यौरा:
x और y की तुलना करता है और यह जानकारी देता है:
1L, अगरxका मानyसे ज़्यादा है.-1Lअगरx,yसे कम है.- अन्य मामलों में
0L.
तुलना करने वाले अन्य फ़ंक्शन के उलट, cmp(...) फ़ंक्शन सभी टाइप के लिए काम करता है. यह sort(...) स्टेज में इस्तेमाल किए गए क्रम के हिसाब से काम करता है. अलग-अलग टाइप की वैल्यू को किस क्रम में लगाया जाता है, यह जानने के लिए वैल्यू टाइप का क्रम देखें.
उदाहरण:
x |
y |
cmp(x, y) |
|---|---|---|
| 1L | 1L | 0L |
| 1.0 | 1L | 0L |
| -1.0 | 1L | -1L |
| 42.5D | "foo" | -1L |
NULL |
NULL |
0L |
NULL |
ABSENT |
0L |
फ़ंक्शन डीबग करना
| नाम | ब्यौरा |
EXISTS
|
अगर वैल्यू मौजूद नहीं है, तो TRUE दिखाता है
|
IS_ABSENT
|
अगर वैल्यू मौजूद नहीं है, तो TRUE दिखाता है
|
IF_ABSENT
|
अगर वैल्यू मौजूद नहीं है, तो उसे एक्सप्रेशन से बदलता है |
IS_ERROR
|
यह फ़ंक्शन, किसी गड़बड़ी का पता लगाता है और यह देखता है कि क्या गड़बड़ी को अंडरलाइंग एक्सप्रेशन से थ्रो किया गया है |
IF_ERROR
|
अगर वैल्यू में कोई गड़बड़ी हुई है, तो उसे एक्सप्रेशन से बदलता है |
ERROR
|
यह फ़ंक्शन, जांच को खत्म कर देता है और दिए गए मैसेज के साथ गड़बड़ी दिखाता है |
EXISTS
सिंटैक्स:
exists(value: ANY) -> BOOLEAN
ब्यौरा:
अगर value मौजूद नहीं है, तो TRUE दिखाता है.
उदाहरण:
value |
exists(value) |
|---|---|
| 0L | TRUE |
| "foo" | TRUE |
NULL |
TRUE |
ABSENT |
FALSE |
Node.js
const result = await db.pipeline() .collection("books") .select(field("rating").exists().as("hasRating")) .execute();
Web
उदाहरण:
const result = await execute(db.pipeline() .collection("books") .select(field("rating").exists().as("hasRating")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("rating").exists().as("hasRating")]) .execute()
Kotlin
उदाहरण:
val result = db.pipeline() .collection("books") .select(field("rating").exists().alias("hasRating")) .execute()
Java
उदाहरण:
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("rating").exists().alias("hasRating")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").exists().as_("hasRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(exists(field("rating")).as("hasRating")) .execute() .get();
IS_ABSENT
सिंटैक्स:
is_absent(value: ANY) -> BOOLEAN
ब्यौरा:
अगर value मौजूद नहीं है, तो TRUE दिखाता है. अगर value मौजूद है, तो FALSE दिखाता है. इनपुट में मौजूद नहीं हैं
वे वैल्यू होती हैं जो इनपुट में मौजूद नहीं होती हैं. जैसे, दस्तावेज़ का कोई फ़ील्ड मौजूद नहीं है.
उदाहरण:
value |
is_absent(value) |
|---|---|
| 0L | FALSE |
| "foo" | FALSE |
NULL |
FALSE |
ABSENT |
TRUE |
IF_ABSENT
सिंटैक्स:
if_absent(value: ANY, replacement: ANY) -> ANY
ब्यौरा:
अगर value मौजूद नहीं है, तो replacement का आकलन करता है और उसे दिखाता है. ऐसा न होने पर, value दिखाता है.
उदाहरण:
value |
replacement |
if_absent(value, replacement) |
|---|---|---|
| 5 ली॰ | 0L | 5 ली॰ |
NULL |
0L | NULL |
ABSENT |
0L | 0L |
IS_ERROR
सिंटैक्स:
is_error(try: ANY) -> BOOLEAN
ब्यौरा:
अगर try का आकलन करते समय कोई गड़बड़ी होती है, तो TRUE दिखाता है. अन्य मामलों में, FALSE दिखाता है.
IF_ERROR
सिंटैक्स:
if_error(try: ANY, catch: ANY) -> ANY
ब्यौरा:
अगर try का आकलन करते समय कोई गड़बड़ी होती है, तो replacement का आकलन करता है और उसे दिखाता है. ऐसा न होने पर, try की हल की गई वैल्यू दिखाता है.
गड़बड़ी
सिंटैक्स:
error(message: STRING) -> ANY
ब्यौरा:
error फ़ंक्शन को एक्ज़ीक्यूट करने की वजह से, पाइपलाइन को एक्ज़ीक्यूट करने में गड़बड़ी हुई. दी गई message को गड़बड़ी में शामिल किया गया है.
उदाहरण:
cond |
res |
switch_on(cond, res, error("no condition matched")) |
|---|---|---|
TRUE |
1L | 1L |
FALSE |
1L | ERROR ("no condition matched") |
रेफ़रंस फ़ंक्शन
REFERENCE टाइप, डेटाबेस में मौजूद अन्य दस्तावेज़ों (या अन्य डेटाबेस) के लिए "पॉइंटर" के तौर पर काम करता है. क्वेरी को लागू करने के दौरान, इस टाइप में बदलाव करने के लिए यहां दिए गए फ़ंक्शन इस्तेमाल किए जा सकते हैं.
| नाम | ब्यौरा |
COLLECTION_ID
|
यह फ़ंक्शन, दिए गए रेफ़रंस में मौजूद लीफ़ कलेक्शन का आईडी दिखाता है |
DOCUMENT_ID
|
यह फ़ंक्शन, दिए गए रेफ़रंस में मौजूद दस्तावेज़ का आईडी दिखाता है |
PARENT
|
पेरेंट रेफ़रंस दिखाता है |
REFERENCE_SLICE
|
यह फ़ंक्शन, दिए गए रेफ़रंस से सेगमेंट का सबसेट दिखाता है |
COLLECTION_ID
सिंटैक्स:
collection_id(ref: REFERENCE) -> STRING
ब्यौरा:
यह फ़ंक्शन, दिए गए REFERENCE का लीफ़ कलेक्शन आईडी दिखाता है.
उदाहरण:
ref |
collection_id(ref) |
|---|---|
users/user1 |
"users" |
users/user1/posts/post1 |
"posts" |
DOCUMENT_ID
सिंटैक्स:
document_id(ref: REFERENCE) -> ANY
ब्यौरा:
यह फ़ंक्शन, दिए गए REFERENCE का दस्तावेज़ आईडी दिखाता है.
उदाहरण:
ref |
document_id(ref) |
|---|---|
users/user1 |
"user1" |
users/user1/posts/post1 |
"post1" |
माता-पिता
सिंटैक्स:
parent(ref: REFERENCE) -> REFERENCE
ब्यौरा:
यह फ़ंक्शन, दिए गए रेफ़रंस का पैरंट REFERENCE दिखाता है. अगर रेफ़रंस पहले से ही रूट रेफ़रंस है, तो यह NULL दिखाता है.
उदाहरण:
ref |
parent(ref) |
|---|---|
/ |
NULL |
users/user1 |
/ |
users/user1/posts/post1 |
users/user1 |
REFERENCE_SLICE
सिंटैक्स:
reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE
ब्यौरा:
REFERENCE, (collection_id, document_id) टपल की सूची होती है. इससे array_slice(...) की तरह, उस सूची को देखा जा सकता है.
यह एक नया REFERENCE दिखाता है, जो दिए गए ref के सेगमेंट का सबसेट होता है.
offset: स्लाइस का शुरुआती इंडेक्स (0 से शुरू होने वाला). अगर यह नेगेटिव है, तो यह रेफ़रंस के आखिर से ऑफ़सेट होता है.length: स्लाइस में शामिल किए जाने वाले सेगमेंट की संख्या.
उदाहरण:
ref |
offset |
length |
reference_slice(ref, offset, length) |
|---|---|---|---|
a/1/b/2/c/3 |
1L | 2L | b/2/c/3 |
a/1/b/2/c/3 |
0L | 2L | a/1/b/2 |
a/1/b/2/c/3 |
-2L | 2L | c/3 |
लॉजिकल फ़ंक्शन
| नाम | ब्यौरा |
AND
|
लॉजिकल AND फ़ंक्शन लागू करता है |
OR
|
लॉजिकल OR फ़ंक्शन लागू करता है |
XOR
|
लॉजिकल XOR फ़ंक्शन लागू करता है |
NOT
|
लॉजिकल NOT फ़ंक्शन का इस्तेमाल करता है |
NOR
|
लॉजिकल NOR फ़ंक्शन लागू करता है |
CONDITIONAL
|
यह फ़ंक्शन, कंडिशनल एक्सप्रेशन के आधार पर आकलन करता है. |
IF_NULL
|
पहली नॉन-नल वैल्यू दिखाता है |
SWITCH_ON
|
कई शर्तों के आधार पर ब्रांच का आकलन |
EQUAL_ANY
|
यह फ़ंक्शन जांच करता है कि कोई वैल्यू, किसी कलेक्शन में मौजूद किसी एलिमेंट के बराबर है या नहीं |
NOT_EQUAL_ANY
|
यह फ़ंक्शन, यह जांच करता है कि कोई वैल्यू, किसी कलेक्शन में मौजूद किसी भी एलिमेंट के बराबर नहीं है |
MAXIMUM
|
यह फ़ंक्शन, वैल्यू के सेट में मौजूद सबसे बड़ी वैल्यू दिखाता है |
MINIMUM
|
यह फ़ंक्शन, वैल्यू के किसी सेट में मौजूद सबसे छोटी वैल्यू दिखाता है |
और
सिंटैक्स:
and(x: BOOLEAN...) -> BOOLEAN
ब्यौरा:
यह फ़ंक्शन, दो या उससे ज़्यादा बूलियन वैल्यू का लॉजिकल AND दिखाता है.
अगर दी गई किसी भी वैल्यू के ABSENT या NULL होने की वजह से, नतीजा नहीं निकाला जा सकता, तो NULL दिखाता है.
उदाहरण:
x |
y |
and(x, y) |
|---|---|---|
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
NULL |
TRUE |
NULL |
ABSENT |
TRUE |
NULL |
NULL |
FALSE |
FALSE |
FALSE |
ABSENT |
FALSE |
Node.js
const result = await db.pipeline() .collection("books") .select( and(field("rating").greaterThan(4), field("price").lessThan(10)) .as("under10Recommendation") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( and(field("rating").greaterThan(4), field("price").lessThan(10)) .as("under10Recommendation") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ (Field("rating").greaterThan(4) && Field("price").lessThan(10)) .as("under10Recommendation") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( Expression.and(field("rating").greaterThan(4), field("price").lessThan(10)) .alias("under10Recommendation") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( Expression.and( field("rating").greaterThan(4), field("price").lessThan(10) ).alias("under10Recommendation") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field, And result = ( client.pipeline() .collection("books") .select( And( Field.of("rating").greater_than(4), Field.of("price").less_than(10) ).as_("under10Recommendation") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( and(greaterThan(field("rating"), 4), lessThan(field("price"), 10)) .as("under10Recommendation")) .execute() .get();
या
सिंटैक्स:
or(x: BOOLEAN...) -> BOOLEAN
ब्यौरा:
यह फ़ंक्शन, दो या उससे ज़्यादा बूलियन वैल्यू का लॉजिकल OR दिखाता है.
अगर दी गई किसी भी वैल्यू के ABSENT या NULL होने की वजह से, नतीजा नहीं निकाला जा सकता, तो NULL दिखाता है.
उदाहरण:
x |
y |
or(x, y) |
|---|---|---|
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
NULL |
TRUE |
TRUE |
ABSENT |
TRUE |
TRUE |
NULL |
FALSE |
NULL |
FALSE |
ABSENT |
NULL |
Node.js
const result = await db.pipeline() .collection("books") .select( or(field("genre").equal("Fantasy"), field("tags").arrayContains("adventure")) .as("matchesSearchFilters") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( or(field("genre").equal("Fantasy"), field("tags").arrayContains("adventure")) .as("matchesSearchFilters") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ (Field("genre").equal("Fantasy") || Field("tags").arrayContains("adventure")) .as("matchesSearchFilters") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( Expression.or(field("genre").equal("Fantasy"), field("tags").arrayContains("adventure")) .alias("matchesSearchFilters") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( Expression.or( field("genre").equal("Fantasy"), field("tags").arrayContains("adventure") ).alias("matchesSearchFilters") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field, And, Or result = ( client.pipeline() .collection("books") .select( Or( Field.of("genre").equal("Fantasy"), Field.of("tags").array_contains("adventure"), ).as_("matchesSearchFilters") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( or(equal(field("genre"), "Fantasy"), arrayContains(field("tags"), "adventure")) .as("matchesSearchFilters")) .execute() .get();
XOR
सिंटैक्स:
xor(x: BOOLEAN...) -> BOOLEAN
ब्यौरा:
यह फ़ंक्शन, दो या उससे ज़्यादा बूलियन वैल्यू का लॉजिकल XOR दिखाता है.
अगर दी गई वैल्यू में से कोई भी वैल्यू ABSENT या NULL है, तो यह फ़ंक्शन NULL दिखाता है.
उदाहरण:
x |
y |
xor(x, y) |
|---|---|---|
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
NULL |
TRUE |
NULL |
ABSENT |
TRUE |
NULL |
NULL |
FALSE |
NULL |
FALSE |
ABSENT |
NULL |
Node.js
const result = await execute(db.pipeline() .collection("books") .select( xor(field("tags").arrayContains("magic"), field("tags").arrayContains("nonfiction")) .as("matchesSearchFilters") ) );
Web
const result = await execute(db.pipeline() .collection("books") .select( xor(field("tags").arrayContains("magic"), field("tags").arrayContains("nonfiction")) .as("matchesSearchFilters") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ (Field("tags").arrayContains("magic") ^ Field("tags").arrayContains("nonfiction")) .as("matchesSearchFilters") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( Expression.xor(field("tags").arrayContains("magic"), field("tags").arrayContains("nonfiction")) .alias("matchesSearchFilters") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( Expression.xor( field("tags").arrayContains("magic"), field("tags").arrayContains("nonfiction") ).alias("matchesSearchFilters") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field, Xor result = ( client.pipeline() .collection("books") .select( Xor( [ Field.of("tags").array_contains("magic"), Field.of("tags").array_contains("nonfiction"), ] ).as_("matchesSearchFilters") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( xor( arrayContains(field("tags"), "magic"), arrayContains(field("tags"), "nonfiction")) .as("matchesSearchFilters")) .execute() .get();
NOR
सिंटैक्स:
nor(x: BOOLEAN...) -> BOOLEAN
ब्यौरा:
दो या उससे ज़्यादा बूलियन वैल्यू का लॉजिकल NOR दिखाता है.
अगर दी गई किसी भी वैल्यू के ABSENT या NULL होने की वजह से, नतीजा नहीं निकाला जा सकता, तो NULL दिखाता है.
उदाहरण:
x |
y |
nor(x, y) |
|---|---|---|
TRUE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
NULL |
TRUE |
FALSE |
ABSENT |
TRUE |
FALSE |
NULL |
FALSE |
NULL |
FALSE |
ABSENT |
NULL |
नहीं
सिंटैक्स:
not(x: BOOLEAN) -> BOOLEAN
ब्यौरा:
यह फ़ंक्शन, किसी बूलियन वैल्यू का लॉजिकल NOT दिखाता है.
Node.js
const result = await execute(db.pipeline() .collection("books") .select( field("tags").arrayContains("nonfiction").not() .as("isFiction") ) );
Web
const result = await execute(db.pipeline() .collection("books") .select( field("tags").arrayContains("nonfiction").not() .as("isFiction") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ (!Field("tags").arrayContains("nonfiction")) .as("isFiction") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( Expression.not( field("tags").arrayContains("nonfiction") ).alias("isFiction") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( Expression.not( field("tags").arrayContains("nonfiction") ).alias("isFiction") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field, Not result = ( client.pipeline() .collection("books") .select(Not(Field.of("tags").array_contains("nonfiction")).as_("isFiction")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(not(arrayContains(field("tags"), "nonfiction")).as("isFiction")) .execute() .get();
CONDITIONAL
सिंटैक्स:
conditional(condition: BOOLEAN, true_case: ANY, false_case: ANY) -> ANY
ब्यौरा:
true_case का आकलन करता है और अगर condition की वैल्यू TRUE होती है, तो true_case दिखाता है.
इस फ़ंक्शन से, स्थिति का आकलन किया जाता है. अगर स्थिति FALSE, NULL या ABSENT वैल्यू में बदलती है, तो यह फ़ंक्शन false_case वैल्यू दिखाता है.
उदाहरण:
condition |
true_case |
false_case |
conditional(condition, true_case, false_case) |
|---|---|---|---|
TRUE |
1L | 0L | 1L |
FALSE |
1L | 0L | 0L |
NULL |
1L | 0L | 0L |
ABSENT |
1L | 0L | 0L |
Node.js
const result = await execute(db.pipeline() .collection("books") .select( field("tags").arrayConcat([ field("pages").greaterThan(100) .conditional(constant("longRead"), constant("shortRead")) ]).as("extendedTags") ) );
Web
const result = await execute(db.pipeline() .collection("books") .select( field("tags").arrayConcat([ field("pages").greaterThan(100) .conditional(constant("longRead"), constant("shortRead")) ]).as("extendedTags") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("tags").arrayConcat([ ConditionalExpression( Field("pages").greaterThan(100), then: Constant("longRead"), else: Constant("shortRead") ) ]).as("extendedTags") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("tags").arrayConcat( Expression.conditional( field("pages").greaterThan(100), constant("longRead"), constant("shortRead") ) ).alias("extendedTags") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("tags").arrayConcat( Expression.conditional( field("pages").greaterThan(100), constant("longRead"), constant("shortRead") ) ).alias("extendedTags") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import ( Field, Constant, Conditional, ) result = ( client.pipeline() .collection("books") .select( Field.of("tags") .array_concat( Conditional( Field.of("pages").greater_than(100), Constant.of("longRead"), Constant.of("shortRead"), ) ) .as_("extendedTags") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( arrayConcat( field("tags"), conditional( greaterThan(field("pages"), 100), constant("longRead"), constant("shortRead"))) .as("extendedTags")) .execute() .get();
IF_NULL
सिंटैक्स:
if_null(expr: ANY, replacement: ANY) -> ANY
ब्यौरा:
अगर NULL नहीं है, तो expr दिखाता है. अगर NULL है, तो replacement का आकलन करके उसे दिखाता है. अगर expr का इस्तेमाल किया जाता है, तो replacement एक्सप्रेशन का आकलन नहीं किया जाता.
उदाहरण:
expr |
replacement |
if_null(expr, replacement) |
|---|---|---|
| 1L | 2L | 1L |
NULL |
2L | 2L |
ABSENT |
2L | ABSENT |
SWITCH_ON
सिंटैक्स:
switch_on(cond1: BOOLEAN, res1: ANY, cond2: BOOLEAN, res2: ANY, ..., [default: ANY]) -> ANY
ब्यौरा:
यह फ़ंक्शन, शर्तों की एक सीरीज़ का आकलन करता है और पहली TRUE शर्त से जुड़ा नतीजा दिखाता है. अगर कोई भी शर्त TRUE के तौर पर नहीं दिखती है, तो default वैल्यू दिखाई जाती है. हालांकि, ऐसा तब होता है, जब वैल्यू दी गई हो. अगर default वैल्यू नहीं दी जाती है, तो कोई अन्य शर्त TRUE के तौर पर नहीं आंकी जाने पर गड़बड़ी का मैसेज दिखता है.
default वैल्यू देने के लिए, इसे आखिरी तर्क के तौर पर पास करें, ताकि तर्कों की संख्या विषम हो.
उदाहरण:
x |
switch_on(eq(x, 1L), "one", eq(x, 2L), "two", "other") |
|---|---|
| 1L | "one" |
| 2L | "दो" |
| 3L | "अन्य" |
EQUAL_ANY
सिंटैक्स:
equal_any(value: ANY, search_space: ARRAY) -> BOOLEAN
ब्यौरा:
अगर value, search_space कलेक्शन में मौजूद है, तो TRUE दिखाता है.
उदाहरण:
value |
search_space |
equal_any(value, search_space) |
|---|---|---|
| 0L | [1L, 2L, 3L] | FALSE |
| 2L | [1L, 2L, 3L] | TRUE |
NULL |
[1L, 2L, 3L] | FALSE |
NULL |
[1L, NULL] |
TRUE |
ABSENT |
[1L, NULL] |
FALSE |
| NaN | [1L, NaN, 3L] | TRUE |
Node.js
const result = await execute(db.pipeline() .collection("books") .select( field("genre").equalAny(["Science Fiction", "Psychological Thriller"]) .as("matchesGenreFilters") ) );
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre").equalAny(["Science Fiction", "Psychological Thriller"]) .as("matchesGenreFilters") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre").equalAny(["Science Fiction", "Psychological Thriller"]) .as("matchesGenreFilters") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre").equalAny(listOf("Science Fiction", "Psychological Thriller")) .alias("matchesGenreFilters") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre").equalAny(Arrays.asList("Science Fiction", "Psychological Thriller")) .alias("matchesGenreFilters") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("genre") .equal_any(["Science Fiction", "Psychological Thriller"]) .as_("matchesGenreFilters") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( equalAny(field("genre"), Arrays.asList("Science Fiction", "Psychological Thriller")) .as("matchesGenreFilters")) .execute() .get();
NOT_EQUAL_ANY
सिंटैक्स:
not_equal_any(value: ANY, search_space: ARRAY) -> BOOLEAN
ब्यौरा:
अगर search_space अरे में value मौजूद नहीं है, तो TRUE दिखाता है.
उदाहरण:
value |
search_space |
not_equal_any(value, search_space) |
|---|---|---|
| 0L | [1L, 2L, 3L] | TRUE |
| 2L | [1L, 2L, 3L] | FALSE |
NULL |
[1L, 2L, 3L] | TRUE |
NULL |
[1L, NULL] |
FALSE |
ABSENT |
[1L, NULL] |
TRUE |
| NaN | [1L, NaN, 3L] | FALSE |
Node.js
const result = await execute(db.pipeline() .collection("books") .select( field("author").notEqualAny(["George Orwell", "F. Scott Fitzgerald"]) .as("byExcludedAuthors") ) );
Web
const result = await execute(db.pipeline() .collection("books") .select( field("author").notEqualAny(["George Orwell", "F. Scott Fitzgerald"]) .as("byExcludedAuthors") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("author").notEqualAny(["George Orwell", "F. Scott Fitzgerald"]) .as("byExcludedAuthors") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("author").notEqualAny(listOf("George Orwell", "F. Scott Fitzgerald")) .alias("byExcludedAuthors") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("author").notEqualAny(Arrays.asList("George Orwell", "F. Scott Fitzgerald")) .alias("byExcludedAuthors") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("author") .not_equal_any(["George Orwell", "F. Scott Fitzgerald"]) .as_("byExcludedAuthors") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( notEqualAny(field("author"), Arrays.asList("George Orwell", "F. Scott Fitzgerald")) .as("byExcludedAuthors")) .execute() .get();
ज़्यादा से ज़्यादा
सिंटैक्स:
maximum(x: ANY...) -> ANY
maximum(x: ARRAY) -> ANY
ब्यौरा:
यह फ़ंक्शन, वैल्यू की सीरीज़ x में मौजूद सबसे बड़ी वैल्यू दिखाता है. हालांकि, यह NULL और ABSENT वैल्यू को छोड़कर सबसे बड़ी वैल्यू दिखाता है.
अगर NULL और ABSENT के अलावा कोई दूसरी वैल्यू नहीं है, तो NULL दिखता है.
अगर सबसे ज़्यादा बार दिखने वाली वैल्यू एक से ज़्यादा हैं, तो उनमें से कोई भी वैल्यू दिखाई जा सकती है. वैल्यू टाइप का क्रम, दस्तावेज़ में दिए गए क्रम के हिसाब से होता है.
उदाहरण:
x |
y |
maximum(x, y) |
|---|---|---|
FALSE |
TRUE |
TRUE |
FALSE |
-10L | -10L |
| 0.0 | -5L | 0.0 |
| "foo" | "bar" | "foo" |
| "foo" | ["foo"] | ["foo"] |
ABSENT |
ABSENT |
NULL |
NULL |
NULL |
NULL |
Node.js
const result = await execute(db.pipeline() .collection("books") .aggregate(field("price").maximum().as("maximumPrice")) );
Web
const result = await execute(db.pipeline() .collection("books") .aggregate(field("price").maximum().as("maximumPrice")) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("rating").logicalMaximum([1]).as("flooredRating") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("rating").logicalMaximum(1).alias("flooredRating") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("rating").logicalMaximum(1).alias("flooredRating") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").logical_maximum(1).as_("flooredRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(logicalMaximum(field("rating"), 1).as("flooredRating")) .execute() .get();
कम से कम
सिंटैक्स:
minimum(x: ANY...) -> ANY
minimum(x: ARRAY) -> ANY
ब्यौरा:
यह फ़ंक्शन, वैल्यू की सीरीज़ x में मौजूद सबसे छोटी ऐसी वैल्यू दिखाता है जो न तो NULL हो और न ही ABSENT.
अगर NULL और ABSENT के अलावा कोई दूसरी वैल्यू नहीं है, तो NULL दिखता है.
अगर एक से ज़्यादा वैल्यू, सबसे कम वैल्यू के बराबर हैं, तो उनमें से कोई भी वैल्यू दिखाई जा सकती है. वैल्यू टाइप का क्रम, दस्तावेज़ में दिए गए क्रम के हिसाब से होता है.
उदाहरण:
x |
y |
minimum(x, y) |
|---|---|---|
FALSE |
TRUE |
FALSE |
FALSE |
-10L | FALSE |
| 0.0 | -5L | -5L |
| "foo" | "bar" | "bar" |
| "foo" | ["foo"] | "foo" |
ABSENT |
ABSENT |
NULL |
NULL |
NULL |
NULL |
Node.js
const result = await execute(db.pipeline() .collection("books") .aggregate(field("price").minimum().as("minimumPrice")) );
Web
const result = await execute(db.pipeline() .collection("books") .aggregate(field("price").minimum().as("minimumPrice")) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("rating").logicalMinimum([5]).as("cappedRating") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("rating").logicalMinimum(5).alias("cappedRating") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("rating").logicalMinimum(5).alias("cappedRating") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").logical_minimum(5).as_("cappedRating")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(logicalMinimum(field("rating"), 5).as("cappedRating")) .execute() .get();
मैप फ़ंक्शन
| नाम | ब्यौरा |
MAP
|
यह फ़ंक्शन, की-वैल्यू पेयर की सीरीज़ से मैप वैल्यू बनाता है |
MAP_GET
|
यह फ़ंक्शन, दी गई कुंजी के लिए मैप में मौजूद वैल्यू दिखाता है |
MAP_SET
|
अपडेट की गई कुंजियों की सीरीज़ के साथ मैप की कॉपी दिखाता है |
MAP_REMOVE
|
यह फ़ंक्शन, मैप की एक कॉपी दिखाता है. इसमें कुंजियों की सीरीज़ हटा दी जाती है |
MAP_MERGE
|
यह फ़ंक्शन, मैप की सीरीज़ को एक साथ मर्ज करता है. |
CURRENT_CONTEXT
|
मौजूदा कॉन्टेक्स्ट को मैप के तौर पर दिखाता है. |
MAP_KEYS
|
यह फ़ंक्शन, किसी मैप में मौजूद सभी कुंजियों का ऐरे दिखाता है. |
MAP_VALUES
|
यह फ़ंक्शन, मैप में मौजूद सभी वैल्यू का ऐरे दिखाता है. |
MAP_ENTRIES
|
यह फ़ंक्शन, मैप के की-वैल्यू पेयर का ऐरे दिखाता है. |
मानचित्र
सिंटैक्स:
map(key: STRING, value: ANY, ...) -> MAP
ब्यौरा:
यह फ़ंक्शन, की-वैल्यू पेयर की सीरीज़ से मैप बनाता है.
MAP_GET
सिंटैक्स:
map_get(map: ANY, key: STRING) -> ANY
ब्यौरा:
यह फ़ंक्शन, दी गई कुंजी के लिए मैप में मौजूद वैल्यू दिखाता है. अगर मैप में key मौजूद नहीं है या map आर्ग्युमेंट MAP नहीं है, तो ABSENT वैल्यू दिखाता है.
Node.js
const result = await db.pipeline() .collection("books") .select( field("awards").mapGet("pulitzer").as("hasPulitzerAward") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("awards").mapGet("pulitzer").as("hasPulitzerAward") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("awards").mapGet("pulitzer").as("hasPulitzerAward") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("awards").mapGet("pulitzer").alias("hasPulitzerAward") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("awards").mapGet("pulitzer").alias("hasPulitzerAward") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("awards").map_get("pulitzer").as_("hasPulitzerAward")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(mapGet(field("awards"), "pulitzer").as("hasPulitzerAward")) .execute() .get();
MAP_SET
सिंटैक्स:
map_set(map: MAP, key: STRING, value: ANY, ...) -> MAP
ब्यौरा:
यह फ़ंक्शन, map की कॉपी दिखाता है. इसमें कुंजी-वैल्यू पेयर की सीरीज़ से अपडेट किया गया कॉन्टेंट होता है.
अगर दी गई वैल्यू मौजूद नहीं है, तो मैप से उससे जुड़ी कुंजी हटा दी जाती है.
अगर map आर्ग्युमेंट MAP नहीं है, तो यह फ़ंक्शन मौजूद न होने वाला मान दिखाता है.
MAP_REMOVE
सिंटैक्स:
map_remove(map: MAP, key: STRING...) -> MAP
ब्यौरा:
यह फ़ंक्शन, map वैल्यू की कॉपी दिखाता है. इसमें से कई कुंजियां हटा दी जाती हैं.
MAP_MERGE
सिंटैक्स:
map_merge(maps: MAP...) -> MAP
यह फ़ंक्शन, दो या उससे ज़्यादा मैप के कॉन्टेंट को मर्ज करता है. अगर एक से ज़्यादा मैप में अलग-अलग वैल्यू हैं, तो सबसे बाद वाली वैल्यू का इस्तेमाल किया जाता है.
CURRENT_CONTEXT
सिंटैक्स:
current_context() -> MAP
यह फ़ंक्शन, एक ऐसा मैप दिखाता है जिसमें मौजूदा पॉइंट ऑफ़ एक्ज़ीक्यूशन में मौजूद सभी फ़ील्ड शामिल होते हैं.
MAP_KEYS
सिंटैक्स:
map_keys(map: MAP) -> ARRAY<STRING>
ब्यौरा:
यह फ़ंक्शन, map वैल्यू की सभी कुंजियों वाला एक ऐरे दिखाता है.
MAP_VALUES
सिंटैक्स:
map_values(map: MAP) -> ARRAY<ANY>
ब्यौरा:
यह फ़ंक्शन, map एट्रिब्यूट की सभी वैल्यू वाला एक ऐरे दिखाता है.
MAP_ENTRIES
सिंटैक्स:
map_entries(map: MAP) -> ARRAY<MAP>
ब्यौरा:
यह फ़ंक्शन, map वैल्यू में मौजूद सभी कुंजी-वैल्यू पेयर वाला एक ऐरे दिखाता है.
हर की-वैल्यू पेयर, दो एंट्री वाले मैप के तौर पर होगा: k और v.
उदाहरण:
map |
map_entries(map) |
|---|---|
| {} | [] |
| {"foo" : 2L} | [{"k": "foo", "v" : 2L}] |
| {"foo" : "bar", "bar" : "foo"} | [{"k": "foo", "v" : "bar" }, {"k" : "bar", "v": "foo"}] |
स्ट्रिंग फ़ंक्शन
| नाम | ब्यौरा |
BYTE_LENGTH
|
STRING या BYTES वैल्यू में मौजूद BYTES की संख्या दिखाता है
|
CHAR_LENGTH
|
किसी STRING वैल्यू में मौजूद यूनिकोड वर्णों की संख्या दिखाता है
|
STARTS_WITH
|
अगर कोई TRUE, दिए गए प्रीफ़िक्स से शुरू होता है, तो TRUE दिखाता हैSTRING
|
ENDS_WITH
|
अगर कोई STRING दिए गए पोस्टफ़िक्स पर खत्म होता है, तो TRUE दिखाता है
|
LIKE
|
अगर कोई STRING किसी पैटर्न से मैच होता है, तो TRUE दिखाता है
|
REGEX_CONTAINS
|
अगर कोई वैल्यू, रेगुलर एक्सप्रेशन से पूरी तरह या कुछ हद तक मैच करती है, तो यह फ़ंक्शन TRUE दिखाता है
|
REGEX_MATCH
|
अगर किसी वैल्यू का कोई हिस्सा रेगुलर एक्सप्रेशन से मैच करता है, तो TRUE दिखाता है
|
STRING_CONCAT
|
यह फ़ंक्शन, कई STRING को एक STRING में जोड़ता है
|
STRING_CONTAINS
|
अगर किसी वैल्यू में TRUE मौजूद है, तो TRUE दिखाता हैSTRING
|
STRING_INDEX_OF
|
यह फ़ंक्शन, STRING या BYTES वैल्यू की पहली बार दिखने वाली जगह का इंडेक्स दिखाता है. इंडेक्स की गिनती 0 से शुरू होती है.
|
TO_UPPER
|
यह STRING या BYTES वैल्यू को अपरकेस में बदलता है.
|
TO_LOWER
|
STRING या BYTES वैल्यू को छोटे अक्षरों में बदलता है.
|
SUBSTRING
|
STRING या BYTES वैल्यू का सबस्ट्रिंग पाता है.
|
STRING_REVERSE
|
STRING या BYTES वैल्यू को उलट देता है.
|
STRING_REPEAT
|
STRING या BYTES वैल्यू को तय की गई संख्या में दोहराता है.
|
STRING_REPLACE_ALL
|
STRING या BYTES वैल्यू की सभी जगहों पर मौजूद वैल्यू को बदलता है.
|
STRING_REPLACE_ONE
|
STRING या BYTES वैल्यू के पहले उदाहरण को बदलता है.
|
TRIM
|
यह फ़ंक्शन, STRING या BYTES वैल्यू से पहले और बाद के वर्णों को हटाता है.
|
LTRIM
|
यह फ़ंक्शन, STRING या BYTES एट्रिब्यूट की वैल्यू में मौजूद शुरुआती वर्णों को हटाता है.
|
RTRIM
|
यह फ़ंक्शन, STRING या BYTES वैल्यू से आखिर के वर्णों को हटाता है.
|
SPLIT
|
यह STRING या BYTES वैल्यू को ऐरे में बांटता है.
|
BYTE_LENGTH
सिंटैक्स:
byte_length[T <: STRING | BYTES](value: T) -> INT64
ब्यौरा:
यह फ़ंक्शन, STRING या BYTES वैल्यू में मौजूद BYTES की संख्या दिखाता है.
उदाहरण:
| value | byte_length(value) |
|---|---|
| "abc" | 3 |
| "xyzabc" | 6 |
| b"abc" | 3 |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").byteLength().as("titleByteLength") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").byteLength().as("titleByteLength") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").byteLength().as("titleByteLength") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").byteLength().alias("titleByteLength") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").byteLength().alias("titleByteLength") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").byte_length().as_("titleByteLength")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(byteLength(field("title")).as("titleByteLength")) .execute() .get();
CHAR_LENGTH
सिंटैक्स:
char_length(value: STRING) -> INT64
ब्यौरा:
STRING वैल्यू में यूनिकोड कोड पॉइंट की संख्या दिखाता है.
उदाहरण:
| value | char_length(value) |
|---|---|
| "abc" | 3 |
| "नमस्ते" | 5 |
| "दुनिया" | 5 |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").charLength().as("titleCharLength") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").charLength().as("titleCharLength") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").charLength().as("titleCharLength") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").charLength().alias("titleCharLength") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").charLength().alias("titleCharLength") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").char_length().as_("titleCharLength")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(charLength(field("title")).as("titleCharLength")) .execute() .get();
STARTS_WITH
सिंटैक्स:
starts_with(value: STRING, prefix: STRING) -> BOOLEAN
ब्यौरा:
अगर value, prefix से शुरू होता है, तो TRUE दिखाता है.
उदाहरण:
| value | उपसर्ग | starts_with(value, prefix) |
|---|---|---|
| "abc" | "a" | सही |
| "abc" | "b" | गलत |
| "abc" | "" | सही |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").startsWith("The") .alias("needsSpecialAlphabeticalSort") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").startsWith("The") .alias("needsSpecialAlphabeticalSort") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("title").starts_with("The").as_("needsSpecialAlphabeticalSort") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(startsWith(field("title"), "The").as("needsSpecialAlphabeticalSort")) .execute() .get();
ENDS_WITH
सिंटैक्स:
ends_with(value: STRING, postfix: STRING) -> BOOLEAN
ब्यौरा:
अगर value के आखिर में postfix आता है, तो TRUE दिखाता है.
उदाहरण:
| value | पोस्टफ़िक्स | ends_with(value, postfix) |
|---|---|---|
| "abc" | "c" | सही |
| "abc" | "b" | गलत |
| "abc" | "" | सही |
Node.js
const result = await db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .as("16InLaptops") ) .execute();
Swift
let result = try await db.pipeline() .collection("inventory/devices/laptops") .select([ Field("name").endsWith("16 inch") .as("16InLaptops") ]) .execute()
Kotlin
val result = db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .alias("16InLaptops") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .alias("16InLaptops") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("inventory/devices/laptops") .select(Field.of("name").ends_with("16 inch").as_("16InLaptops")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("inventory/devices/laptops") .select(endsWith(field("name"), "16 inch").as("16InLaptops")) .execute() .get();
पसंद करें
सिंटैक्स:
like(value: STRING, pattern: STRING) -> BOOLEAN
ब्यौरा:
अगर value का मिलान pattern से होता है, तो TRUE दिखाता है.
उदाहरण:
| value | पैटर्न | like(value, pattern) |
|---|---|---|
| "Firestore" | "Fire%" | सही |
| "Firestore" | "%store" | सही |
| "Datastore" | "Data_tore" | सही |
| "100%" | "100\%" | सही |
Node.js
const result = await db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .as("anyFiction") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .as("anyFiction") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre").like("%Fiction") .as("anyFiction") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .alias("anyFiction") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .alias("anyFiction") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").like("%Fiction").as_("anyFiction")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(like(field("genre"), "%Fiction").as("anyFiction")) .execute() .get();
REGEX_CONTAINS
सिंटैक्स:
regex_contains(value: STRING, pattern: STRING) -> BOOLEAN
ब्यौरा:
अगर value का कुछ हिस्सा pattern से मेल खाता है, तो TRUE दिखाता है. अगर pattern एक मान्य रेगुलर एक्सप्रेशन नहीं है, तो यह फ़ंक्शन error दिखाता है.
रेगुलर एक्सप्रेशन, re2 लाइब्रेरी के सिंटैक्स का पालन करते हैं.
उदाहरण:
| value | पैटर्न | regex_contains(value, pattern) |
|---|---|---|
| "Firestore" | "आग" | सही |
| "Firestore" | "store$" | सही |
| "Firestore" | "data" | गलत |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .alias("isFirestoreRelated") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .alias("isFirestoreRelated") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("title") .regex_contains("Firestore (Enterprise|Standard)") .as_("isFirestoreRelated") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select( regexContains(field("title"), "Firestore (Enterprise|Standard)") .as("isFirestoreRelated")) .execute() .get();
REGEX_MATCH
सिंटैक्स:
regex_match(value: STRING, pattern: STRING) -> BOOLEAN
ब्यौरा:
अगर value, pattern से पूरी तरह मैच होता है, तो TRUE दिखाता है. अगर pattern एक मान्य रेगुलर एक्सप्रेशन नहीं है, तो यह फ़ंक्शन error दिखाता है.
रेगुलर एक्सप्रेशन, re2 लाइब्रेरी के सिंटैक्स का पालन करते हैं.
उदाहरण:
| value | पैटर्न | regex_match(value, pattern) |
|---|---|---|
| "Firestore" | "F.*store" | सही |
| "Firestore" | "आग" | गलत |
| "Firestore" | "^F.*e$" | सही |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .alias("isFirestoreExactly") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .alias("isFirestoreExactly") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("title") .regex_match("Firestore (Enterprise|Standard)") .as_("isFirestoreExactly") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select( regexMatch(field("title"), "Firestore (Enterprise|Standard)") .as("isFirestoreExactly")) .execute() .get();
STRING_CONCAT
सिंटैक्स:
string_concat(values: STRING...) -> STRING
ब्यौरा:
दो या उससे ज़्यादा STRING वैल्यू को एक साथ जोड़कर एक नतीजा दिखाता है.
उदाहरण:
| आर्ग्युमेंट | string_concat(values...) |
|---|---|
() |
गड़बड़ी |
("a") |
"a" |
("abc", "def") |
"abcdef" |
("a", "", "c") |
"ac" |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").stringConcat(" by ", field("author")) .as("fullyQualifiedTitle") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").stringConcat(" by ", field("author")) .as("fullyQualifiedTitle") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").concat([" by ", Field("author")]) .as("fullyQualifiedTitle") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").concat(" by ", field("author")) .alias("fullyQualifiedTitle") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").concat(" by ", field("author")) .alias("fullyQualifiedTitle") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("title") .concat(" by ", Field.of("author")) .as_("fullyQualifiedTitle") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(stringConcat(field("title"), " by ", field("author")).as("fullyQualifiedTitle")) .execute() .get();
STRING_CONTAINS
सिंटैक्स:
string_contains(value: STRING, substring: STRING) -> BOOLEAN
ब्यौरा:
इस फ़ंक्शन से यह पता चलता है कि value में लिटरल स्ट्रिंग substring मौजूद है या नहीं.
उदाहरण:
| value | सबस्ट्रिंग | string_contains(value, substring) |
|---|---|---|
| "abc" | "b" | सही |
| "abc" | "d" | गलत |
| "abc" | "" | सही |
| "a.c" | "." | सही |
| "☃☃☃" | "☃" | सही |
Node.js
const result = await db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .as("isFirestoreRelated") ) .execute();
Web
const result = await execute(db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .as("isFirestoreRelated") ) );
Swift
let result = try await db.pipeline() .collection("articles") .select([ Field("body").stringContains("Firestore") .as("isFirestoreRelated") ]) .execute()
Kotlin
val result = db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .alias("isFirestoreRelated") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .alias("isFirestoreRelated") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("articles") .select(Field.of("body").string_contains("Firestore").as_("isFirestoreRelated")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("articles") .select(stringContains(field("body"), "Firestore").as("isFirestoreRelated")) .execute() .get();
STRING_INDEX_OF
सिंटैक्स:
string_index_of[T <: STRING | BYTES](value: T, search: T) -> INT64
ब्यौरा:
value में search के पहले इंस्टेंस का इंडेक्स दिखाता है. यह इंडेक्स 0 से शुरू होता है.
- अगर
searchनहीं मिलता है, तो-1दिखाता है. - अगर
valueकोईSTRINGवैल्यू है, तो नतीजे को यूनिकोड कोड पॉइंट में मापा जाता है. अगर यहBYTESवैल्यू है, तो इसे बाइट में मापा जाता है. - अगर
searchकोई खालीSTRINGयाBYTESवैल्यू है, तो नतीजा0होता है.
उदाहरण:
| value | खोजें | string_index_of(value, search) |
|---|---|---|
| "नमस्ते दुनिया" | "o" | 4 |
| "नमस्ते दुनिया" | "l" | 2 |
| "नमस्ते दुनिया" | "z" | -1 |
| "केला" | "na" | 2 |
| "abc" | "" | 0 |
| b"abc" | b"b" | 1 |
| "é" | "é" | 0 |
| b"é" | b"é" | 0 |
TO_UPPER
सिंटैक्स:
to_upper[T <: STRING | BYTES](value: T) -> T
ब्यौरा:
यह STRING या BYTES वैल्यू को अपरकेस में बदलता है.
अगर कोई बाइट या वर्ण, UTF-8 लोअरकेस अल्फ़ाबेटिक वर्ण से मेल नहीं खाता है, तो उसे बिना किसी बदलाव के पास कर दिया जाता है.
उदाहरण:
| value | to_upper(value) |
|---|---|
| "abc" | "ABC" |
| "AbC" | "ABC" |
| b"abc" | b"ABC" |
| b"a1c" | b"A1C" |
Node.js
const result = await db.pipeline() .collection("authors") .select( field("name").toUpper() .as("uppercaseName") ) .execute();
Web
const result = await execute(db.pipeline() .collection("authors") .select( field("name").toUpper() .as("uppercaseName") ) );
Swift
let result = try await db.pipeline() .collection("authors") .select([ Field("name").toUpper() .as("uppercaseName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("authors") .select( field("name").toUpper() .alias("uppercaseName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("authors") .select( field("name").toUpper() .alias("uppercaseName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("authors") .select(Field.of("name").to_upper().as_("uppercaseName")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("authors") .select(toUpper(field("name")).as("uppercaseName")) .execute() .get();
TO_LOWER
सिंटैक्स:
to_lower[T <: STRING | BYTES](value: T) -> T
ब्यौरा:
STRING या BYTES वैल्यू को छोटे अक्षरों में बदलता है.
अगर कोई बाइट या वर्ण, UTF-8 के बड़े अक्षरों वाले वर्ण से मेल नहीं खाता है, तो उसे बिना किसी बदलाव के पास कर दिया जाता है.
उदाहरण:
| value | to_lower(value) |
|---|---|
| "ABC" | "abc" |
| "AbC" | "abc" |
| "A1C" | "a1c" |
| b"ABC" | b"abc" |
Node.js
const result = await db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .as("isFantasy") ) .execute();
Web
const result = await execute(db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .as("isFantasy") ) );
Swift
let result = try await db.pipeline() .collection("authors") .select([ Field("genre").toLower().equal("fantasy") .as("isFantasy") ]) .execute()
Kotlin
val result = db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .alias("isFantasy") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .alias("isFantasy") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("authors") .select(Field.of("genre").to_lower().equal("fantasy").as_("isFantasy")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("authors") .select(equal(toLower(field("genre")), "fantasy").as("isFantasy")) .execute() .get();
SUBSTRING
सिंटैक्स:
substring[T <: STRING | BYTES](input: T, position: INT64) -> T
substring[T <: STRING | BYTES](input: T, position: INT64, length: INT64) -> T
ब्यौरा:
यह फ़ंक्शन, input की एक सबस्ट्रिंग दिखाता है. यह position (शून्य पर आधारित इंडेक्स) से शुरू होती है और इसमें length तक की एंट्री शामिल होती हैं. अगर कोई length नहीं दिया गया है, तो position से लेकर input के आखिर तक की सबस्ट्रिंग दिखाता है.
अगर
input,STRINGवैल्यू है, तोpositionऔरlengthको यूनिकोड कोड पॉइंट में मापा जाता है. अगर यहBYTESवैल्यू है, तो इन्हें बाइट में मेज़र किया जाता है.अगर
position,inputकी लंबाई से ज़्यादा है, तो खाली सबस्ट्रिंग मिलती है. अगरpositionऔरlengthका योग,inputकी लंबाई से ज़्यादा है, तो सबस्ट्रिंग कोinputके आखिर तक काट दिया जाता है.अगर
positionकी वैल्यू नेगेटिव है, तो पोज़िशन को इनपुट के आखिर से लिया जाता है. अगर नेगेटिवpositionकी वैल्यू, इनपुट के साइज़ से ज़्यादा है, तो पोज़िशन को शून्य पर सेट किया जाता है.lengthकी वैल्यू, ज़ीरो (शून्य) से कम नहीं होनी चाहिए.
उदाहरण:
length की वैल्यू न देने पर:
| इनपुट | जगह | substring(input, position) |
|---|---|---|
| "abc" | 0 | "abc" |
| "abc" | 1 | "bc" |
| "abc" | 3 | "" |
| "abc" | -1 | "c" |
| b"abc" | 1 | b"bc" |
length की जानकारी देने पर:
| इनपुट | जगह | लंबाई | substring(input, position, length) |
|---|---|---|---|
| "abc" | 0 | 1 | "a" |
| "abc" | 1 | 2 | "bc" |
| "abc" | -1 | 1 | "c" |
| b"abc" | 0 | 1 | b"a" |
Node.js
const result = await db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring(4) .as("titleWithoutLeadingThe") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring(4) .as("titleWithoutLeadingThe") ) );
Swift
let result = try await db.pipeline() .collection("books") .where(Field("title").startsWith("The ")) .select([ Field("title").substring(position: 4) .as("titleWithoutLeadingThe") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title") .substring(constant(4), field("title").charLength().subtract(4)) .alias("titleWithoutLeadingThe") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring( constant(4), field("title").charLength().subtract(4)) .alias("titleWithoutLeadingThe") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .where(Field.of("title").starts_with("The ")) .select(Field.of("title").substring(4).as_("titleWithoutLeadingThe")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .where(startsWith(field("title"), "The ")) .select( substring(field("title"), constant(4), field("title").charLength()) .as("titleWithoutLeadingThe")) .execute() .get();
STRING_REVERSE
सिंटैक्स:
string_reverse[T <: STRING | BYTES](input: T) -> T
ब्यौरा:
यह फ़ंक्शन, दिए गए इनपुट को उल्टे क्रम में दिखाता है.
जब इनपुट STRING होता है, तब वर्णों को यूनिकोड कोड पॉइंट से अलग किया जाता है. वहीं, जब इनपुट BYTES वैल्यू होती है, तब वर्णों को बाइट से अलग किया जाता है.
उदाहरण:
| इनपुट | string_reverse(input) |
|---|---|
| "abc" | "cba" |
| "a🌹b" | "b🌹a" |
| "नमस्ते" | "olleh" |
| b"abc" | b"cba" |
Node.js
const result = await db.pipeline() .collection("books") .select( field("name").reverse().as("reversedName") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("name").reverse().as("reversedName") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("name").reverse().as("reversedName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("name").reverse().alias("reversedName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("name").reverse().alias("reversedName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("name").string_reverse().as_("reversedName")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(reverse(field("name")).as("reversedName")) .execute() .get();
STRING_REPEAT
सिंटैक्स:
string_repeat[T <: STRING | BYTES](input: T, repetitions: INT64) -> T
ब्यौरा:
यह फ़ंक्शन, input को repetitions बार दोहराकर दिखाता है.
repetitionsकी वैल्यू, शून्य या इससे ज़्यादा का पूर्णांक होना चाहिए.- अगर
repetitions0है, तोinputके टाइप की खाली वैल्यू दिखाता है. - अगर नतीजे का साइज़, तय सीमा (1 एमबी) से ज़्यादा होता है, तो गड़बड़ी का मैसेज दिखता है.
उदाहरण:
| इनपुट | दोहराव | string_repeat(input, repetitions) |
|---|---|---|
| "foo" | 3 | "foofoofoo" |
| "foo" | 0 | "" |
| "a " | 3 | "a a a " |
| b"ab" | 2 | b"abab" |
| "é🦆" | 2 | "é🦆é🦆" |
STRING_REPLACE_ALL
सिंटैक्स:
string_replace_all[T <: STRING | BYTES](input: T, find: T, replacement: T) -> T
ब्यौरा:
input में find के सभी नॉन-ओवरलैपिंग इंस्टेंस को replacement से बदलता है.
- मैचिंग, केस-सेंसिटिव होती है.
- अगर
findखाली है, तो कोई बदलाव नहीं किया जाएगा.
उदाहरण:
| इनपुट | ढूंढें | बदला जा रहा है | string_replace_all(input, find, replacement) |
|---|---|---|---|
| "foobarfoo" | "foo" | "baz" | "bazbarbaz" |
| "ababab" | "aba" | "c" | "cbab" |
| "foobar" | "o" | "" | "fbar" |
| "é🦆🌎🦆" | "🦆" | "a" | "éa🌎a" |
| b"abc" | b"b" | b"d" | b"adc" |
STRING_REPLACE_ONE
सिंटैक्स:
string_replace_one[T <: STRING | BYTES](input: T, find: T, replacement: T) -> T
ब्यौरा:
input में, find के पहले इंस्टेंस को replacement से बदलता है.
- मैचिंग, केस-सेंसिटिव होती है.
- अगर
findखाली है, तो कोई बदलाव नहीं किया जाएगा.
उदाहरण:
| इनपुट | ढूंढें | बदला जा रहा है | string_replace_one(input, find, replacement) |
|---|---|---|---|
| "foobarfoo" | "foo" | "baz" | "bazbarfoo" |
| "é" | "é" | "a" | "a" |
| b"foobar" | b"o" | b"z" | b"fzoobar" |
TRIM
सिंटैक्स:
trim[T <: STRING | BYTES](input: T, values_to_trim: T) -> T
trim[T <: STRING | BYTES](input: T) -> T
ब्यौरा:
यह फ़ंक्शन, दी गई input के शुरू और आखिर से, तय किए गए BYTES या CHARS को हटाता है.
- अगर कोई
values_to_trimनहीं दिया जाता है, तो खाली सफ़ेद जगह वाले वर्णों को ट्रिम करता है.
उदाहरण:
values_to_trim की वैल्यू न देने पर:
| इनपुट | trim(input) |
|---|---|
| " foo " | "foo" |
| b" foo " | b"foo" |
| "foo" | "foo" |
| "" | "" |
| " " | "" |
| "\t foo \n" | "foo" |
| b"\t foo \n" | b"foo" |
| "\r\f\v foo \r\f\v" | "foo" |
| b"\r\f\v foo \r\f\v" | b"foo" |
values_to_trim की जानकारी देने पर:
| इनपुट | values_to_trim | trim(input, values_to_trim) |
|---|---|---|
| "abcbfooaacb" | "abc" | "foo" |
| "abcdaabadbac" | "abc" | "daabad" |
| b"C1C2C3" | b"C1" | b"C2C3" |
| b"C1C2" | "foo" | गड़बड़ी |
| "foo" | b"C1" | गड़बड़ी |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("name").trim().as("whitespaceTrimmedName") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("name").trim(" \n\t").as("whitespaceTrimmedName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("name").trim().alias("whitespaceTrimmedName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("name").trim().alias("whitespaceTrimmedName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("name").trim().as_("whitespaceTrimmedName")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(trim(field("name")).as("whitespaceTrimmedName")) .execute() .get();
LTRIM
सिंटैक्स:
ltrim[T <: STRING | BYTES](value: T, to_trim: T) -> T
ltrim[T <: STRING | BYTES](value: T) -> T
ब्यौरा:
यह फ़ंक्शन, दिए गए value की शुरुआत से, तय किए गए BYTES या CHARS को हटाता है.
- अगर
to_trimनहीं दिया गया है, तो इससे शुरुआती व्हाइटस्पेस कैरेक्टर हट जाते हैं.
उदाहरण:
to_trim की वैल्यू न देने पर:
| value | ltrim(value) |
|---|---|
| " foo " | "foo " |
| "foo" | "foo" |
to_trim की जानकारी देने पर:
| value | to_trim | ltrim(value, to_trim) |
|---|---|---|
| "aaabc" | "a" | "bc" |
| "abacaba" | "ba" | "caba" |
| "é" | "é" | "" |
RTRIM
सिंटैक्स:
rtrim[T <: STRING | BYTES](value: T, to_trim: T) -> T
rtrim[T <: STRING | BYTES](value: T) -> T
ब्यौरा:
यह फ़ंक्शन, दिए गए value के आखिर से, तय किए गए BYTES या CHARS को हटाता है.
- अगर
to_trimनहीं दिया गया है, तो आखिर में मौजूद व्हाइटस्पेस कैरेक्टर हटा देता है.
उदाहरण:
to_trim की वैल्यू न देने पर:
| value | rtrim(value) |
|---|---|
| " foo " | " foo" |
| "foo" | "foo" |
to_trim की जानकारी देने पर:
| value | to_trim | rtrim(value, to_trim) |
|---|---|---|
| "abccc" | "c" | "ab" |
| "abacaba" | "ba" | "abac" |
| "é" | "é" | "" |
SPLIT
सिंटैक्स:
split(input: STRING) -> ARRAY<STRING>
split[T <: STRING | BYTES](input: T, delimiter: T) -> ARRAY<T>
ब्यौरा:
यह फ़ंक्शन, डीलिमिटर का इस्तेमाल करके STRING या BYTES वैल्यू को अलग-अलग हिस्सों में बांटता है.
STRINGके लिए, डिफ़ॉल्ट डीलिमिटर कॉमा,होता है. डेलिमिटर को एक स्ट्रिंग के तौर पर माना जाता है.BYTESके लिए, आपको डेलिमिटर तय करना होगा.खाली डेलिमीटर के आधार पर स्प्लिट करने पर,
STRINGवैल्यू के लिए यूनिकोड कोडपॉइंट की एक श्रेणी औरBYTESवैल्यू के लिएBYTESकी एक श्रेणी मिलती है.खाली
STRINGको स्प्लिट करने पर, एक खालीSTRINGवालाARRAYमिलता है.
उदाहरण:
delimiter की वैल्यू न देने पर:
| इनपुट | split(input) |
|---|---|
| "foo,bar,foo" | ["foo", "bar", "foo"] |
| "foo" | ["foo"] |
| ",foo," | ["", "foo", ""] |
| "" | [""] |
| b"C120C2C4" | गड़बड़ी |
delimiter की जानकारी देने पर:
| इनपुट | डेलिमिटर | split(input, delimiter) |
|---|---|---|
| "foo bar foo" | " " | ["foo", "bar", "foo"] |
| "foo bar foo" | "z" | ["foo bar foo"] |
| "abc" | "" | ["a", "b", "c"] |
| b"C1,C2,C4" | b"," | [b"C1", b"C2", b"C4"] |
| b"ABC" | b"" | [b"A", b"B", b"C"] |
| "foo" | b"C1" | गड़बड़ी |
टाइमस्टैंप फ़ंक्शन
| नाम | ब्यौरा |
CURRENT_TIMESTAMP
|
यह अनुरोध के समय के हिसाब से TIMESTAMP जनरेट करता है.
|
TIMESTAMP_TRUNC
|
यह फ़ंक्शन, किसी TIMESTAMP को दिए गए लेवल के मुताबिक बदल देता है.
|
UNIX_MICROS_TO_TIMESTAMP
|
यह फ़ंक्शन, 1970-01-01 00:00:00 UTC के बाद से अब तक के माइक्रोसेकंड की संख्या को TIMESTAMP में बदलता है
|
UNIX_MILLIS_TO_TIMESTAMP
|
यह फ़ंक्शन, 1970-01-01 00:00:00 UTC के बाद से अब तक के मिलीसेकंड की संख्या को TIMESTAMP में बदलता है
|
UNIX_SECONDS_TO_TIMESTAMP
|
यह फ़ंक्शन, 1970-01-01 00:00:00 UTC के बाद से गुज़रे सेकंड की संख्या को TIMESTAMP में बदलता है
|
TIMESTAMP_ADD
|
यह फ़ंक्शन, TIMESTAMP में समयावधि जोड़ता है
|
TIMESTAMP_SUB
|
यह फ़ंक्शन, TIMESTAMP में से समयावधि घटाता है
|
TIMESTAMP_TO_UNIX_MICROS
|
किसी TIMESTAMP को 1970-01-01 00:00:00 UTC के बाद के माइक्रोसेकंड की संख्या में बदलता है
|
TIMESTAMP_TO_UNIX_MILLIS
|
यह TIMESTAMP को 1970-01-01 00:00:00 UTC के बाद से अब तक के मिलीसेकंड की संख्या में बदलता है
|
TIMESTAMP_TO_UNIX_SECONDS
|
यह TIMESTAMP को 1970-01-01 00:00:00 UTC के बाद से सेकंड की संख्या में बदलता है
|
TIMESTAMP_DIFF
|
यह फ़ंक्शन, दो TIMESTAMP के बीच, तय किए गए unit इंटरवल की पूरी संख्या दिखाता है.
|
TIMESTAMP_EXTRACT
|
यह फ़ंक्शन, TIMESTAMP से कोई खास part (जैसे, साल, महीना, दिन) निकालता है.
|
CURRENT_TIMESTAMP
सिंटैक्स:
current_timestamp() -> TIMESTAMP
ब्यौरा:
अनुरोध के समय input की शुरुआत का टाइमस्टैंप मिलता है. इसे 1970-01-01 00:00:00 UTC के बाद से माइक्रोसेकंड की संख्या के तौर पर समझा जाता है.
यह क्वेरी में स्थिर होता है. इसे कई बार कॉल करने पर भी, इसकी वैल्यू हमेशा एक जैसी रहती है.
TIMESTAMP_TRUNC
सिंटैक्स:
timestamp_trunc(timestamp: TIMESTAMP, granularity: STRING[, timezone: STRING]) -> TIMESTAMP
ब्यौरा:
यह फ़ंक्शन, टाइमस्टैंप को दिए गए विवरण के स्तर के मुताबिक बदल देता है.
granularity आर्ग्युमेंट एक स्ट्रिंग होना चाहिए और इनमें से कोई एक होना चाहिए:
microsecondmillisecondsecondminutehourdayweekweek([weekday])monthquarteryearisoyear
अगर timezone आर्ग्युमेंट दिया गया है, तो तारीख को छोटा करने की प्रोसेस, दिए गए टाइमज़ोन के कैलेंडर की सीमाओं के हिसाब से होगी. उदाहरण के लिए, दिन के हिसाब से तारीख को छोटा करने पर, दिए गए टाइमज़ोन के हिसाब से तारीख को रात 12 बजे पर छोटा कर दिया जाएगा. ट्रंकेट करने के दौरान, डेलाइट सेविंग टाइम का ध्यान रखा जाएगा.
अगर timezone नहीं दिया गया है, तो UTC कैलेंडर की सीमाओं के आधार पर काटा जाएगा.
timezone आर्ग्युमेंट, tz डेटाबेस से किसी टाइमज़ोन का स्ट्रिंग फ़ॉर्मैट होना चाहिए. उदाहरण के लिए, America/New_York. GMT से ऑफ़सेट तय करके, कस्टम टाइम ऑफ़सेट का भी इस्तेमाल किया जा सकता है.
उदाहरण:
timestamp |
granularity |
timezone |
timestamp_trunc(timestamp, granularity, timezone) |
|---|---|---|---|
| 2000-01-01 10:20:30:123456 यूटीसी | "दूसरा" | नहीं दिया गया | 2001-01-01 10:20:30 यूटीसी |
| 31-05-1997 04:30:30 यूटीसी | "day" | नहीं दिया गया | 1997-05-31 00:00:00 यूटीसी |
| 31-05-1997 04:30:30 यूटीसी | "day" | "America/Los_Angeles" | 1997-05-30 07:00:00 यूटीसी |
| 16-03-2001 04:00:00 यूटीसी | "week(friday) | नहीं दिया गया | 16-03-2001 00:00:00 यूटीसी |
| 23-03-2001 04:00:00 यूटीसी | "week(friday) | "America/Los_Angeles" | 23-03-2001 17:00:00 यूटीसी |
| 2026-01-24 20:00:00 यूटीसी | "महीना" | "GMT+06:32:43" | 2026-01-01T06:32:43 यूटीसी |
UNIX_MICROS_TO_TIMESTAMP
सिंटैक्स:
unix_micros_to_timestamp(input: INT64) -> TIMESTAMP
ब्यौरा:
यह input (1970-01-01 00:00:00 UTC के बाद के माइक्रोसेकंड की संख्या के तौर पर इंटरप्रेट किया जाता है) को TIMESTAMP में बदलता है. अगर input को मान्य TIMESTAMP में नहीं बदला जा सकता, तो error दिखाता है.
उदाहरण:
input |
unix_micros_to_timestamp(input) |
|---|---|
| 0L | 1970-01-01 00:00:00 यूटीसी |
| 400123456L | 1970-01-01 00:06:40.123456 यूटीसी |
| -1000000L | 1969-12-31 23:59:59 यूटीसी |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().as("createdAtString") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().as("createdAtString") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAtMicros").unixMicrosToTimestamp().as("createdAtString") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().alias("createdAtString") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().alias("createdAtString") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("createdAtMicros") .unix_micros_to_timestamp() .as_("createdAtString") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(unixMicrosToTimestamp(field("createdAtMicros")).as("createdAtString")) .execute() .get();
UNIX_MILLIS_TO_TIMESTAMP
सिंटैक्स:
unix_millis_to_timestamp(input: INT64) -> TIMESTAMP
ब्यौरा:
यह फ़ंक्शन, input (जिसे 1970-01-01 00:00:00 UTC के बाद के मिलीसेकंड की संख्या के तौर पर इंटरप्रेट किया जाता है) को TIMESTAMP में बदलता है. अगर input को मान्य TIMESTAMP में नहीं बदला जा सकता, तो error दिखाता है.
उदाहरण:
input |
unix_millis_to_timestamp(input) |
|---|---|
| 0L | 1970-01-01 00:00:00 यूटीसी |
| 4000123L | 1970-01-01 01:06:40.123 यूटीसी |
| -1000000L | 1969-12-31 23:43:20 यूटीसी |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().as("createdAtString") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().as("createdAtString") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAtMillis").unixMillisToTimestamp().as("createdAtString") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().alias("createdAtString") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().alias("createdAtString") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("createdAtMillis") .unix_millis_to_timestamp() .as_("createdAtString") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(unixMillisToTimestamp(field("createdAtMillis")).as("createdAtString")) .execute() .get();
UNIX_SECONDS_TO_TIMESTAMP
सिंटैक्स:
unix_seconds_to_timestamp(input: INT64) -> TIMESTAMP
ब्यौरा:
यह input (1970-01-01 00:00:00 UTC के बाद के सेकंड की संख्या के तौर पर इंटरप्रेट किया जाता है) को TIMESTAMP में बदलता है. अगर input को मान्य TIMESTAMP में नहीं बदला जा सकता, तो error दिखाता है.
उदाहरण:
input |
unix_seconds_to_timestamp(input) |
|---|---|
| 0L | 1970-01-01 00:00:00 यूटीसी |
| 60L | 1970-01-01 00:01:00 यूटीसी |
| -300L | 1969-12-31 23:55:00 यूटीसी |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().as("createdAtString") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().as("createdAtString") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAtSeconds").unixSecondsToTimestamp().as("createdAtString") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().alias("createdAtString") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().alias("createdAtString") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("createdAtSeconds") .unix_seconds_to_timestamp() .as_("createdAtString") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(unixSecondsToTimestamp(field("createdAtSeconds")).as("createdAtString")) .execute() .get();
TIMESTAMP_ADD
सिंटैक्स:
timestamp_add(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
ब्यौरा:
timestamp से unit का amount जोड़ता है. amount आर्ग्युमेंट नेगेटिव हो सकता है. इस मामले में, यह TIMESTAMP_SUB के बराबर होता है.
unit आर्ग्युमेंट एक स्ट्रिंग होना चाहिए और इनमें से कोई एक होना चाहिए:
microsecondmillisecondsecondminutehourday
अगर टाइमस्टैंप, TIMESTAMP रेंज में नहीं आता है, तो यह फ़ंक्शन गड़बड़ी दिखाता है.
उदाहरण:
timestamp |
unit |
amount |
timestamp_add(timestamp, unit, amount) |
|---|---|---|---|
| 2025-02-20 00:00:00 यूटीसी | "minute" | 2L | 2025-02-20 00:02:00 यूटीसी |
| 2025-02-20 00:00:00 यूटीसी | "घंटा" | -4L | 2025-02-19 20:00:00 यूटीसी |
| 2025-02-20 00:00:00 यूटीसी | "day" | 5 ली॰ | 25-02-2025 00:00:00 यूटीसी |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("createdAt").timestampAdd("day", 3653).as("expiresAt") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAt").timestampAdd("day", 3653).as("expiresAt") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAt").timestampAdd(3653, .day).as("expiresAt") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAt") .timestampAdd("day", 3653) .alias("expiresAt") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAt").timestampAdd("day", 3653).alias("expiresAt") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("createdAt").timestamp_add("day", 3653).as_("expiresAt")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(timestampAdd(field("createdAt"), "day", 3653).as("expiresAt")) .execute() .get();
TIMESTAMP_SUB
सिंटैक्स:
timestamp_sub(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
ब्यौरा:
timestamp में से unit का amount घटाता है. amount आर्ग्युमेंट की वैल्यू नेगेटिव हो सकती है. इस मामले में, यह TIMESTAMP_ADD के बराबर होता है.
unit आर्ग्युमेंट एक स्ट्रिंग होना चाहिए और इनमें से कोई एक होना चाहिए:
microsecondmillisecondsecondminutehourday
अगर टाइमस्टैंप, TIMESTAMP रेंज में नहीं आता है, तो यह फ़ंक्शन गड़बड़ी दिखाता है.
उदाहरण:
timestamp |
unit |
amount |
timestamp_sub(timestamp, unit, amount) |
|---|---|---|---|
| 04-07-2026 00:00:00 यूटीसी | "minute" | 40L | 2026-07-03 23:20:00 यूटीसी |
| 04-07-2026 00:00:00 यूटीसी | "घंटा" | -24L | 05-07-2026 00:00:00 यूटीसी |
| 04-07-2026 00:00:00 यूटीसी | "day" | 3L | 2026-07-01 00:00:00 यूटीसी |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("expiresAt").timestampSubtract("day", 14).as("sendWarningTimestamp") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("expiresAt").timestampSubtract("day", 14).as("sendWarningTimestamp") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("expiresAt").timestampSubtract(14, .day).as("sendWarningTimestamp") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("expiresAt") .timestampSubtract("day", 14) .alias("sendWarningTimestamp") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("expiresAt").timestampSubtract("day", 14).alias("sendWarningTimestamp") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("expiresAt") .timestamp_subtract("day", 14) .as_("sendWarningTimestamp") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(timestampSubtract(field("expiresAt"), "day", 14).as("sendWarningTimestamp")) .execute() .get();
TIMESTAMP_TO_UNIX_MICROS
सिंटैक्स:
timestamp_to_unix_micros(input: TIMESTAMP) -> INT64
ब्यौरा:
यह input को 1970-01-01 00:00:00 UTC के बाद से अब तक के माइक्रोसेकंड की संख्या में बदलता है. यह माइक्रोसेकंड की शुरुआत में राउंड डाउन करके, ज़्यादा सटीक वैल्यू को छोटा करता है.
उदाहरण:
input |
timestamp_to_unix_micros(input) |
|---|---|
| 1970-01-01 00:00:00 यूटीसी | 0L |
| 1970-01-01 00:06:40.123456 यूटीसी | 400123456L |
| 1969-12-31 23:59:59 यूटीसी | -1000000L |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().as("unixMicros") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().as("unixMicros") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("dateString").timestampToUnixMicros().as("unixMicros") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().alias("unixMicros") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().alias("unixMicros") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("dateString").timestamp_to_unix_micros().as_("unixMicros")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(timestampToUnixMicros(field("dateString")).as("unixMicros")) .execute() .get();
TIMESTAMP_TO_UNIX_MILLIS
सिंटैक्स:
timestamp_to_unix_millis(input: TIMESTAMP) -> INT64
ब्यौरा:
यह input को 1970-01-01 00:00:00 UTC के बाद से मिलीसेकंड की संख्या में बदलता है. यह मिलीसेकंड की शुरुआत में राउंड डाउन करके, ज़्यादा सटीक लेवल को छोटा करता है.
उदाहरण:
input |
timestamp_to_unix_millis(input) |
|---|---|
| 1970-01-01 00:00:00 यूटीसी | 0L |
| 1970-01-01 01:06:40.123 यूटीसी | 4000123L |
| 1969-12-31 23:43:20 | -1000000L |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().as("unixMillis") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().as("unixMillis") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("dateString").timestampToUnixMillis().as("unixMillis") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().alias("unixMillis") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().alias("unixMillis") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("dateString").timestamp_to_unix_millis().as_("unixMillis")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(timestampToUnixMillis(field("dateString")).as("unixMillis")) .execute() .get();
TIMESTAMP_TO_UNIX_SECONDS
सिंटैक्स:
timestamp_to_unix_seconds(input: TIMESTAMP) -> INT64
ब्यौरा:
यह फ़ंक्शन, input को 1970-01-01 00:00:00 UTC के बाद से गुज़रे सेकंड की संख्या में बदलता है. यह सेकंड की शुरुआत में राउंड डाउन करके, ज़्यादा सटीक वैल्यू को छोटा करता है.
उदाहरण:
input |
timestamp_to_unix_seconds(input) |
|---|---|
| 1970-01-01 00:00:00 यूटीसी | 0L |
| 1970-01-01 00:01:00 यूटीसी | 60L |
| 1969-12-31 23:55:00 यूटीसी | -300L |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().as("unixSeconds") ) .execute();
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().as("unixSeconds") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("dateString").timestampToUnixSeconds().as("unixSeconds") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().alias("unixSeconds") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().alias("unixSeconds") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("dateString").timestamp_to_unix_seconds().as_("unixSeconds")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select(timestampToUnixSeconds(field("dateString")).as("unixSeconds")) .execute() .get();
TIMESTAMP_DIFF
सिंटैक्स:
timestamp_diff(end: TIMESTAMP, start: TIMESTAMP, unit: STRING) -> INT64
ब्यौरा:
यह फ़ंक्शन, दो TIMESTAMP के बीच, तय किए गए unit इंटरवल की पूरी संख्या दिखाता है.
- अगर
end,startसे पहले की तारीख है, तो यह फ़ंक्शन नेगेटिव वैल्यू दिखाता है. - यह फ़ंक्शन, किसी भी फ़्रैक्शनल यूनिट को छोटा करता है. उदाहरण के लिए,
timestamp_diff("2021-01-01 00:00:01", "2021-01-01 00:00:00", "minute")से, नतीजे के तौर पर0मिलता है.
unit आर्ग्युमेंट एक स्ट्रिंग होना चाहिए और इनमें से कोई एक होना चाहिए:
microsecondmillisecondsecondminutehourday
उदाहरण:
end |
start |
unit |
timestamp_diff(end, start, unit) |
|---|---|---|---|
| 04-07-2026 00:01:00 यूटीसी | 04-07-2026 00:00:00 यूटीसी | "दूसरा" | 60L |
| 04-07-2026 00:00:00 यूटीसी | 05-07-2026 00:00:00 यूटीसी | "day" | -1L |
| 2026-07-04 00:00:59 यूटीसी | 04-07-2026 00:00:00 यूटीसी | "minute" | 0L |
TIMESTAMP_EXTRACT
सिंटैक्स:
timestamp_extract(timestamp: TIMESTAMP, part: STRING[, timezone: STRING]) -> INT64
ब्यौरा:
timestamp से किसी खास part (जैसे, साल, महीना, दिन) को निकालता है.
part आर्ग्युमेंट एक स्ट्रिंग होना चाहिए और इनमें से कोई एक होना चाहिए:
microsecondmillisecondsecondminutehourdaydayofweek: यह वैल्यू की जानकारी देता है, जो 1 (रविवार) से 7 (शनिवार) के बीच होती है.dayofyearweek: यह साल के हफ़्ते की संख्या दिखाता है. साल के पहले रविवार से इसकी गिनती शुरू होती है.week([weekday]): यह साल के हफ़्ते की संख्या दिखाता है. इसकी शुरुआत, बताई गईweekdayसे होती है.monthquarteryearisoweek: यह ISO 8601 के हिसाब से हफ़्ते की संख्या दिखाता है.isoyear: यह ISO 8601 के हिसाब से हफ़्ते की संख्या वाला साल दिखाता है.
अगर timezone आर्ग्युमेंट दिया जाता है, तो एक्सट्रैक्शन, दिए गए टाइमज़ोन के कैलेंडर के हिसाब से होगा. डेटा निकालते समय, डेलाइट सेविंग टाइम का ध्यान रखा जाएगा.
अगर timezone नहीं दिया गया है, तो जानकारी UTC के आधार पर निकाली जाएगी.
timezone आर्ग्युमेंट, टाइमज़ोन डेटाबेस से किसी टाइमज़ोन का स्ट्रिंग रिप्रेजेंटेशन होना चाहिए. उदाहरण के लिए, America/New_York. GMT से ऑफ़सेट तय करके, कस्टम टाइम ऑफ़सेट का इस्तेमाल भी किया जा सकता है.
उदाहरण:
timestamp |
part |
timezone |
timestamp_extract(timestamp, part, timezone) |
|---|---|---|---|
| 2025-02-20 10:20:30 यूटीसी | "year" | नहीं दिया गया | 2025 |
| 2025-02-20 10:20:30 यूटीसी | "day" | नहीं दिया गया | 20 |
| 2025-12-31 23:59:59 यूटीसी | "year" | "Asia/Tokyo" | 2026 |
टाइप फ़ंक्शन
| नाम | ब्यौरा |
TYPE
|
STRING के तौर पर वैल्यू का टाइप दिखाता है.
|
IS_TYPE
|
अगर वैल्यू, तय किए गए टाइप से मेल खाती है, तो true दिखाता है.
|
प्रकार
सिंटैक्स:
type(input: ANY) -> STRING
ब्यौरा:
input टाइप का स्ट्रिंग वर्शन दिखाता है.
अगर कोई वैल्यू मौजूद नहीं है, तो NULL दिखाता है.
उदाहरण:
input |
type(input) |
|---|---|
| NULL | "null" |
| सही | "बूलियन" |
| 1 | "int32" |
| -3L | "int64" |
| 3.14 | "float64" |
| 01-01-2024T00:00:00Z यूटीसी | "टाइमस्टैंप" |
| "foo" | "स्ट्रिंग" |
| b"foo" | "बाइट" |
| [1, 2] | "array" |
| {"a": 1} | "map" |
path("c/d") |
"रेफ़रंस" |
vector([1.0, 2.0]) |
"vector" |
| ABSENT | NULL |
क्लाइंट के उदाहरण
Node.js
const result = await db.pipeline() .collection("books") .select(field("title").notEqual("1984").as("not1984")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("title").notEqual("1984").as("not1984")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("title").notEqual("1984").as("not1984")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("title").notEqual("1984").alias("not1984")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("title").notEqual("1984").alias("not1984")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").not_equal("1984").as_("not1984")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(notEqual(field("title"), "1984").as("not1984")) .execute() .get();
IS_TYPE
सिंटैक्स:
is_type(input: ANY, type: STRING) -> BOOLEAN
ब्यौरा:
अगर input, तय किए गए type से मेल खाता है, तो true दिखाता है. ऐसा न होने पर, false दिखाता है.
अगर input मौजूद नहीं है, तो NULL दिखाता है.
type के लिए इन स्ट्रिंग का इस्तेमाल किया जा सकता है:
"null""boolean""int32""int64""float64""decimal128""number""timestamp""string""bytes""array""map""reference""vector""geo_point""max_key""min_key""object_id""regex""bson_timestamp"
उदाहरण:
input |
type |
is_type(input, type) |
|---|---|---|
| NULL | "null" | सही |
| सही | "बूलियन" | सही |
| 3.14 | "float64" | सही |
| "foo" | "स्ट्रिंग" | सही |
| b"foo" | "स्ट्रिंग" | गलत |
| [1, 2] | "array" | सही |
| {"a": 1} | "map" | सही |
vector([1.0, 2.0]) |
"vector" | सही |
| ABSENT | "स्ट्रिंग" | NULL |
| "bar" | "अन्य" | गड़बड़ी |
वेक्टर फ़ंक्शन
| नाम | ब्यौरा |
COSINE_DISTANCE
|
यह फ़ंक्शन, दो वेक्टर के बीच की कोसाइन दूरी दिखाता है |
DOT_PRODUCT
|
यह फ़ंक्शन, दो वेक्टर के बीच के डॉट प्रॉडक्ट को दिखाता है |
EUCLIDEAN_DISTANCE
|
यह फ़ंक्शन, दो वेक्टर के बीच की यूक्लिडियन दूरी दिखाता है |
MANHATTAN_DISTANCE
|
यह फ़ंक्शन, दो वेक्टर के बीच की मैनहैटन दूरी दिखाता है |
VECTOR_LENGTH
|
यह फ़ंक्शन, किसी वेक्टर में मौजूद एलिमेंट की संख्या दिखाता है |
COSINE_DISTANCE
सिंटैक्स:
cosine_distance(x: VECTOR, y: VECTOR) -> FLOAT64
ब्यौरा:
यह फ़ंक्शन, x और y के बीच की कोसाइन दूरी दिखाता है.
Node.js
const sampleVector = [0.0, 1, 2, 3, 4, 5]; const result = await db.pipeline() .collection("books") .select( field("embedding").cosineDistance(sampleVector).as("cosineDistance") ) .execute();
Web
const sampleVector = [0.0, 1, 2, 3, 4, 5]; const result = await execute(db.pipeline() .collection("books") .select( field("embedding").cosineDistance(sampleVector).as("cosineDistance")));
Swift
let sampleVector = [0.0, 1, 2, 3, 4, 5] let result = try await db.pipeline() .collection("books") .select([ Field("embedding").cosineDistance(sampleVector).as("cosineDistance") ]) .execute()
Kotlin
val sampleVector = doubleArrayOf(0.0, 1.0, 2.0, 3.0, 4.0, 5.0) val result = db.pipeline() .collection("books") .select( field("embedding").cosineDistance(sampleVector).alias("cosineDistance") ) .execute()
Java
double[] sampleVector = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("embedding").cosineDistance(sampleVector).alias("cosineDistance") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field from google.cloud.firestore_v1.vector import Vector sample_vector = Vector([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) result = ( client.pipeline() .collection("books") .select( Field.of("embedding").cosine_distance(sample_vector).as_("cosineDistance") ) .execute() )
Java
double[] sampleVector = new double[] {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(cosineDistance(field("embedding"), sampleVector).as("cosineDistance")) .execute() .get();
DOT_PRODUCT
सिंटैक्स:
dot_product(x: VECTOR, y: VECTOR) -> FLOAT64
ब्यौरा:
x और y का डॉट प्रॉडक्ट दिखाता है.
Node.js
const sampleVector = [0.0, 1, 2, 3, 4, 5]; const result = await db.pipeline() .collection("books") .select( field("embedding").dotProduct(sampleVector).as("dotProduct") ) .execute();
Web
const sampleVector = [0.0, 1, 2, 3, 4, 5]; const result = await execute(db.pipeline() .collection("books") .select( field("embedding").dotProduct(sampleVector).as("dotProduct") ) );
Swift
let sampleVector = [0.0, 1, 2, 3, 4, 5] let result = try await db.pipeline() .collection("books") .select([ Field("embedding").dotProduct(sampleVector).as("dotProduct") ]) .execute()
Kotlin
val sampleVector = doubleArrayOf(0.0, 1.0, 2.0, 3.0, 4.0, 5.0) val result = db.pipeline() .collection("books") .select( field("embedding").dotProduct(sampleVector).alias("dotProduct") ) .execute()
Java
double[] sampleVector = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("embedding").dotProduct(sampleVector).alias("dotProduct") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field from google.cloud.firestore_v1.vector import Vector sample_vector = Vector([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) result = ( client.pipeline() .collection("books") .select(Field.of("embedding").dot_product(sample_vector).as_("dotProduct")) .execute() )
Java
double[] sampleVector = new double[] {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(dotProduct(field("embedding"), sampleVector).as("dotProduct")) .execute() .get();
EUCLIDEAN_DISTANCE
सिंटैक्स:
euclidean_distance(x: VECTOR, y: VECTOR) -> FLOAT64
ब्यौरा:
यह फ़ंक्शन, x और y के बीच की यूक्लिडियन दूरी का हिसाब लगाता है.
Node.js
const sampleVector = [0.0, 1, 2, 3, 4, 5]; const result = await db.pipeline() .collection("books") .select( field("embedding").euclideanDistance(sampleVector).as("euclideanDistance") ) .execute();
Web
const sampleVector = [0.0, 1, 2, 3, 4, 5]; const result = await execute(db.pipeline() .collection("books") .select( field("embedding").euclideanDistance(sampleVector).as("euclideanDistance") ) );
Swift
let sampleVector = [0.0, 1, 2, 3, 4, 5] let result = try await db.pipeline() .collection("books") .select([ Field("embedding").euclideanDistance(sampleVector).as("euclideanDistance") ]) .execute()
Kotlin
val sampleVector = doubleArrayOf(0.0, 1.0, 2.0, 3.0, 4.0, 5.0) val result = db.pipeline() .collection("books") .select( field("embedding").euclideanDistance(sampleVector).alias("euclideanDistance") ) .execute()
Java
double[] sampleVector = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("embedding").euclideanDistance(sampleVector).alias("euclideanDistance") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field from google.cloud.firestore_v1.vector import Vector sample_vector = Vector([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) result = ( client.pipeline() .collection("books") .select( Field.of("embedding") .euclidean_distance(sample_vector) .as_("euclideanDistance") ) .execute() )
Java
double[] sampleVector = new double[] {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(euclideanDistance(field("embedding"), sampleVector).as("euclideanDistance")) .execute() .get();
MANHATTAN_DISTANCE
सिंटैक्स:
manhattan_distance(x: VECTOR, y: VECTOR) -> FLOAT64
ब्यौरा:
यह फ़ंक्शन, x और y के बीच की मैनहैटन दूरी का हिसाब लगाता है.
VECTOR_LENGTH
सिंटैक्स:
vector_length(vector: VECTOR) -> INT64
ब्यौरा:
यह फ़ंक्शन, VECTOR में मौजूद एलिमेंट की संख्या दिखाता है.
Node.js
const result = await db.pipeline() .collection("books") .select( field("embedding").vectorLength().as("vectorLength") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("embedding").vectorLength().as("vectorLength") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("embedding").vectorLength().as("vectorLength") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("embedding").vectorLength().alias("vectorLength") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("embedding").vectorLength().alias("vectorLength") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("embedding").vector_length().as_("vectorLength")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(vectorLength(field("embedding")).as("vectorLength")) .execute() .get();