গাণিতিক ফাংশন
Cloud Firestore সমস্ত গাণিতিক ফাংশনের নিম্নলিখিত আচরণগুলো রয়েছে:
- ইনপুট প্যারামিটারগুলোর কোনো একটি
NULLহলে এর মানওNULL। - যদি আর্গুমেন্টগুলোর কোনো একটি
NaNহয়, তাহলে এর মানওNaNহবে। - ওভারফ্লো বা আন্ডারফ্লো ঘটলে একটি ত্রুটি বার্তা তৈরি হয়।
Cloud Firestore নিম্নলিখিত ক্রম অনুসারে নিউমেরিক টাইপ ওয়াইডেনিং সম্পাদন করে: INT32 < INT64 < FLOAT64 < DECIMAL128 । যখন কোনো অ্যারিথমেটিক ফাংশন বিভিন্ন টাইপের একাধিক নিউমেরিক আর্গুমেন্ট গ্রহণ করে (উদাহরণস্বরূপ, add(5.0D, 6L) ), তখন সংকীর্ণ টাইপগুলো অপারেন্ডগুলোর মধ্যে উপস্থিত প্রশস্ততম টাইপে স্বয়ংক্রিয়ভাবে রূপান্তরিত হয়। পূর্ববর্তী উদাহরণে, 6L কে 6.0D তে ওয়াইডেন করা হয়, যার ফলে এক্সপ্রেশনটি একটি FLOAT64 টাইপ রিটার্ন করে।
INT64 থেকে FLOAT64 একটি অন্তর্নিহিত রূপান্তরের ফলে নির্ভুলতা হ্রাস পেতে পারে, কারণ রূপান্তরিত মানটি তার সর্বনিম্ন গুরুত্বপূর্ণ বিটগুলো হারাতে পারে। ফলস্বরূপ মানটি IEEE 754 রাউন্ড-টু-নিয়ারেস্ট মোড ব্যবহার করে মূল পূর্ণসংখ্যা মানটির একটি গোলাকার সংস্করণ হবে।
| নাম | বর্ণনা |
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();
যান
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Add(firestore.FieldOf("soldBooks"), firestore.FieldOf("unsoldBooks")).As("totalBooks"), )). Execute(ctx)
বিয়োগ
সিনট্যাক্স:
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();
যান
storeCredit := 7 snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Subtract(firestore.FieldOf("price"), storeCredit).As("totalCost"), )). Execute(ctx)
গুণ করুন
সিনট্যাক্স:
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();
যান
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Multiply(firestore.FieldOf("price"), firestore.FieldOf("soldBooks")).As("revenue"), )). Execute(ctx)
ভাগ করুন
সিনট্যাক্স:
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();
যান
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Divide(firestore.FieldOf("ratings"), firestore.FieldOf("soldBooks")).As("reviewRate"), )). Execute(ctx)
মোড
সিনট্যাক্স:
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();
যান
displayCapacity := 1000 snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Mod(firestore.FieldOf("unsoldBooks"), displayCapacity).As("warehousedBooks"), )). Execute(ctx)
সিইআইএল
সিনট্যাক্স:
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();
যান
booksPerShelf := 100 snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Ceil(firestore.Divide(firestore.FieldOf("unsoldBooks"), booksPerShelf)).As("requiredShelves"), )). Execute(ctx)
মেঝে
সিনট্যাক্স:
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();
যান
snapshot := client.Pipeline(). Collection("books"). AddFields(firestore.Selectables( firestore.Floor(firestore.Divide(firestore.FieldOf("wordCount"), firestore.FieldOf("pages"))).As("wordsPerPage"), )). Execute(ctx)
রাউন্ড
সিনট্যাক্স:
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();
যান
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Round(firestore.Multiply(firestore.FieldOf("soldBooks"), firestore.FieldOf("price"))).As("partialRevenue"), )). Aggregate(firestore.Accumulators( firestore.Sum("partialRevenue").As("totalRevenue"), )). Execute(ctx)
ট্রাঙ্ক
সিনট্যাক্স:
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();
যান
googleplexLat := 37.4221 googleplexLng := -122.0853 snapshot := client.Pipeline(). Collection("cities"). AddFields(firestore.Selectables( firestore.Pow(firestore.Multiply(firestore.Subtract(firestore.FieldOf("lat"), googleplexLat), 111), 2).As("latitudeDifference"), firestore.Pow(firestore.Multiply(firestore.Subtract(firestore.FieldOf("lng"), googleplexLng), 111), 2).As("longitudeDifference"), )). Select(firestore.Fields( firestore.Sqrt(firestore.Add(firestore.FieldOf("latitudeDifference"), firestore.FieldOf("longitudeDifference"))). // Inaccurate for large distances or close to poles As("approximateDistanceToGoogle"), )). Execute(ctx)
বর্গমূল
সিনট্যাক্স:
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();
যান
googleplexLat := 37.4221 googleplexLng := -122.0853 snapshot := client.Pipeline(). Collection("cities"). AddFields(firestore.Selectables( firestore.Pow(firestore.Multiply(firestore.Subtract(firestore.FieldOf("lat"), googleplexLat), 111), 2).As("latitudeDifference"), firestore.Pow(firestore.Multiply(firestore.Subtract(firestore.FieldOf("lng"), googleplexLng), 111), 2).As("longitudeDifference"), )). Select(firestore.Fields( firestore.Sqrt(firestore.Add(firestore.FieldOf("latitudeDifference"), firestore.FieldOf("longitudeDifference"))). // Inaccurate for large distances or close to poles As("approximateDistanceToGoogle"), )). Execute(ctx)
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();
যান
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Exp(firestore.FieldOf("rating")).As("expRating"), )). Execute(ctx)
এলএন
সিনট্যাক্স:
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();
যান
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Ln(firestore.FieldOf("rating")).As("lnRating"), )). Execute(ctx)
লগ
সিনট্যাক্স:
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 (বর্জনীয়)-এর মধ্যে থেকে সুষমভাবে নির্বাচিত হবে।