গাণিতিক ফাংশন
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 | কোনো number 10 ভিত্তিক লগারিদম নির্ণয় করে। |
RAND | একটি ছদ্ম-এলোমেলো ফ্লোটিং পয়েন্ট সংখ্যা ফেরত দেয় |
এবিএস
সিনট্যাক্স:
abs[N <: INT32 | INT64 | FLOAT64](number: N) -> N
বর্ণনা:
কোনো number পরম মান ফেরত দেয়।
- ফাংশনটি
INT32বাINT64মান ওভারফ্লো করলে একটি ত্রুটি দেখায়।
উদাহরণ:
| সংখ্যা | abs(number) |
|---|---|
| ১০ | ১০ |
| -১০ | ১০ |
| ১০ লিটার | ১০ লিটার |
| -০.০ | ০.০ |
| ১০.৫ | ১০.৫ |
| -১০.৫ | ১০.৫ |
| -২ ৩১ | [error] |
| -২ ৬৩ | [error] |
যোগ করুন
সিনট্যাক্স:
add[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
বর্ণনা:
x + y এর মান ফেরত দেয়।
উদাহরণ:
| x | y | add(x, y) |
|---|---|---|
| ২০ | ৩ | ২৩ |
| ১০.০ | ১ | ১১.০ |
| ২২.৫ | ২.০ | ২৪.৫ |
| INT64.MAX | ১ | [error] |
| INT64.MIN | -১ | [error] |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
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() )
জাভা
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(add(field("soldBooks"), field("unsoldBooks")).as("totalBooks")) .execute() .get();
বিয়োগ
সিনট্যাক্স:
subtract[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
বর্ণনা:
x - y এর মান ফেরত দেয়।
উদাহরণ:
| x | y | subtract(x, y) |
|---|---|---|
| ২০ | ৩ | ১৭ |
| ১০.০ | ১ | ৯.০ |
| ২২.৫ | ২.০ | ২০.৫ |
| INT64.MAX | -১ | [error] |
| INT64.MIN | ১ | [error] |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
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() )
জাভা
int storeCredit = 7; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(subtract(field("price"), storeCredit).as("totalCost")) .execute() .get();
গুণ করুন
সিনট্যাক্স:
multiply[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
বর্ণনা:
x * y এর মান ফেরত দেয়।
উদাহরণ:
| x | y | multiply(x, y) |
|---|---|---|
| ২০ | ৩ | ৬০ |
| ১০.০ | ১ | ১০.০ |
| ২২.৫ | ২.০ | ৪৫.০ |
| INT64.MAX | ২ | [error] |
| INT64.MIN | ২ | [error] |
| ফ্লোট৬৪.ম্যাক্স | ফ্লোট৬৪.ম্যাক্স | +inf |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
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() )
জাভা
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(multiply(field("price"), field("soldBooks")).as("revenue")) .execute() .get();
ভাগ করুন
সিনট্যাক্স:
divide[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
বর্ণনা:
x / y এর মান ফেরত দেয়। পূর্ণসংখ্যার ভাগফল সংক্ষিপ্ত করা হয়।
উদাহরণ:
| x | y | divide(x, y) |
|---|---|---|
| ২০ | ৩ | ৬ |
| ১০.০ | ৩ | ৩.৩৩৩... |
| ২২.৫ | ২ | ১১.২৫ |
| ১০ | ০ | [error] |
| ১.০ | ০.০ | +inf |
| -১.০ | ০.০ | -inf |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
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() )
জাভা
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(divide(field("ratings"), field("soldBooks")).as("reviewRate")) .execute() .get();
মোড
সিনট্যাক্স:
mod[N <: INT32 | INT64 | FLOAT64](x: N, y: N) -> N
বর্ণনা:
x / y এর ভাগশেষ ফেরত দেয়।
- পূর্ণসংখ্যা টাইপের (
INT64) ক্ষেত্রেyএর মান শূন্য হলে একটিerrorদেখায়। - ফ্লোট টাইপের (
FLOAT64) ক্ষেত্রেyএর মান শূন্য হলেNaNরিটার্ন করে।
উদাহরণ:
| x | y | mod(x, y) |
|---|---|---|
| ২০ | ৩ | ২ |
| -১০ | ৩ | -১ |
| ১০ | -৩ | ১ |
| -১০ | -৩ | -১ |
| ১০ | ১ | ০ |
| ২২.৫ | ২ | ০.৫ |
| ২২.৫ | ০.০ | NaN |
| ২৫ | ০ | [error] |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
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() )
জাভা
int displayCapacity = 1000; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(mod(field("unsoldBooks"), displayCapacity).as("warehousedBooks")) .execute() .get();
সিইআইএল
সিনট্যাক্স:
ceil[N <: INT32 | INT64 | FLOAT64](number: N) -> N
বর্ণনা:
সর্বনিম্ন পূর্ণসংখ্যা মান ফেরত দেয় যা number এর চেয়ে ছোট নয়।
উদাহরণ:
| সংখ্যা | ceil(number) |
|---|---|
| ২০ | ২০ |
| ১০ | ১০ |
| ০ | ০ |
| ২৪ লিটার | ২৪ লিটার |
| -০.৪ | -০.০ |
| ০.৪ | ১.০ |
| ২২.৫ | ২৩.০ |
+inf | +inf |
-inf | -inf |
নোড.জেএস
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") ) );
সুইফট
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();
পাইথন
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() )
জাভা
int booksPerShelf = 100; Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(ceil(divide(field("unsoldBooks"), booksPerShelf)).as("requiredShelves")) .execute() .get();
মেঝে
সিনট্যাক্স:
floor[N <: INT32 | INT64 | FLOAT64](number: N) -> N
বর্ণনা:
এমন বৃহত্তম পূর্ণসংখ্যাটি ফেরত দেয় যা number চেয়ে বড় নয়।
উদাহরণ:
| সংখ্যা | floor(number) |
|---|---|
| ২০ | ২০ |
| ১০ | ১০ |
| ০ | ০ |
| ২১৪৭৪৮৩৬৪৮ | ২১৪৭৪৮৩৬৪৮ |
| -০.৪ | -১.০ |
| ০.৪ | ০.০ |
| ২২.৫ | ২২.০ |
+inf | +inf |
-inf | -inf |
নোড.জেএস
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") ) );
সুইফট
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();
পাইথন
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() )
জাভা
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .addFields(floor(divide(field("wordCount"), field("pages"))).as("wordsPerPage")) .execute() .get();
রাউন্ড
সিনট্যাক্স:
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) |
|---|---|---|
| ১৫.৫ | ০ | ১৬.০ |
| -১৫.৫ | ০ | -১৬.০ |
| ১৫ | ১ | ১৫ |
| ১৫ | ০ | ১৫ |
| ১৫ | -১ | ২০ |
| ১৫ | -২ | ০ |
| ১৫.৪৮৯২৪ | ১ | ১৫.৫ |
| ২ ৩১ -১ | -১ | [error] |
| ২ ৬৩ -১ লিটার | -১ | [error] |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
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() )
জাভা
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(round(multiply(field("soldBooks"), field("price"))).as("partialRevenue")) .aggregate(sum("partialRevenue").as("totalRevenue")) .execute() .get();
ট্রাঙ্ক
সিনট্যাক্স:
trunc[N <: Number](number: N) -> N
trunc[N <: Number](number: N, places: INT64) -> N
বর্ণনা:
একটি number নির্দিষ্ট সংখ্যক দশমিক places পর্যন্ত ছেঁটে ফেলে। দশমিক বিন্দুর places ধনাত্মক হলে ডান দিক থেকে এবং ঋণাত্মক হলে বাম দিক থেকে অঙ্কগুলো ছেঁটে ফেলা হয়।
- শুধুমাত্র
numberপ্রদান করা হলে, শূন্যের দিকে নিকটতম পূর্ণ সংখ্যায় ছেঁটে ফেলা হয়। - ট্রাঙ্কেট করার ফলে ওভারফ্লো হলে একটি
errorদেখানো হয়।
উদাহরণ:
| সংখ্যা | স্থান | trunc(number, places) |
|---|---|---|
| ১৫.৫ | ০ | ১৫.০ |
| -১৫.৫ | ০ | -১৫.০ |
| ১৫ | ১ | ১৫ |
| ১৫ | ০ | ১৫ |
| ১৫ | -১ | ১০ |
| ১৫ | -২ | ০ |
| ১৫.৪৮৯২৪ | ১ | ১৫.৪ |
| -১৫.৪৮৯২৪ | ২ | -১৫.৪৮ |
যুদ্ধবন্দী
সিনট্যাক্স:
pow(base: FLOAT64, exponent: FLOAT64) -> FLOAT64
বর্ণনা:
base মানকে exponent ঘাতে উন্নীত করে ফেরত দেয়।
base <= 0এবংexponentঋণাত্মক হলে একটি ত্রুটি দেখায়।যেকোনো
exponentজন্য,pow(1, exponent)মান 1 হয়।যেকোনো
baseজন্য,pow(base, 0)-এর মান 1।
উদাহরণ:
| ভিত্তি | সূচক | pow(base, exponent) |
|---|---|---|
| ২ | ৩ | ৮.০ |
| ২ | -৩ | ০.১২৫ |
+inf | ০ | ১.০ |
| ১ | +inf | ১.০ |
| -১ | ০.৫ | [error] |
| ০ | -১ | [error] |
নোড.জেএস
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") ) );
সুইফট
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();
পাইথন
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() )
জাভা
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[N <: FLOAT64 | DECIMAL128](number: N) -> N
বর্ণনা:
কোনো number বর্গমূল ফেরত দেয়।
-
numberঋণাত্মক হলে একটিerrorদেখায়।
উদাহরণ:
| সংখ্যা | sqrt(number) |
|---|---|
| ২৫ | ৫.০ |
| ১২.০০২ | ৩.৪৬৪... |
| ০.০ | ০.০ |
NaN | NaN |
+inf | +inf |
-inf | [error] |
x < 0 | [error] |
নোড.জেএস
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") ) );
সুইফট
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();
পাইথন
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() )
জাভা
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) |
|---|---|
| ০.০ | ১.০ |
| ১০ | e^10 ( FLOAT64 ) |
+inf | +inf |
-inf | ০ |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").exp().as_("expRating")) .execute() )
জাভা
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(exp(field("rating")).as("expRating")) .execute() .get();
এলএন
সিনট্যাক্স:
ln(number: FLOAT64) -> FLOAT64
বর্ণনা:
এই ফাংশনটি number এর স্বাভাবিক লগারিদম ফেরত দেয়। এই ফাংশনটি log(number) এর সমতুল্য।
উদাহরণ:
| সংখ্যা | ln(number) |
|---|---|
| ১ | ০.০ |
| ২ লিটার | ০.৬৯৩... |
| ১.০ | ০.০ |
e ( FLOAT64 ) | ১.০ |
-inf | NaN |
+inf | +inf |
x <= 0 | [error] |
নোড.জেএস
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")) );
সুইফট
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();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("rating").ln().as_("lnRating")) .execute() )
জাভা
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(ln(field("rating")).as("lnRating")) .execute() .get();
লগ
সিনট্যাক্স:
log(number: FLOAT64, base: FLOAT64) -> FLOAT64
log(number: FLOAT64) -> FLOAT64
বর্ণনা:
কোনো number লগারিদম base মান হিসেবে ফেরত দেয়।
- যদি শুধু
numberদেওয়া হয়, তাহলেnumberbaseএর সাপেক্ষে লগারিদম ফেরত দেওয়া হয় (যাln(number)-এর সমতুল্য)।
উদাহরণ:
| সংখ্যা | ভিত্তি | log(number, base) |
|---|---|---|
| ১০০ | ১০ | ২.০ |
-inf | Numeric | NaN |
Numeric । | +inf | NaN |
number <= 0 | Numeric | [error] |
Numeric | base <= 0 | [error] |
Numeric | ১.০ | [error] |
লগ১০
সিনট্যাক্স:
log10(x: FLOAT64) -> FLOAT64
বর্ণনা:
কোনো number 10 ভিত্তিক লগারিদম নির্ণয় করে।
উদাহরণ:
| সংখ্যা | log10(number) |
|---|---|
| ১০০ | ২.০ |
-inf | NaN |
+inf | +inf |
x <= 0 | [error] |
র্যান্ড
সিনট্যাক্স:
rand() -> FLOAT64
বর্ণনা:
একটি ছদ্ম-এলোমেলো ফ্লোটিং পয়েন্ট সংখ্যা ফেরত দিন, যা 0.0 (অন্তর্ভুক্ত) এবং 1.0 (বর্জনীয়)-এর মধ্যে থেকে সুষমভাবে নির্বাচিত হবে।