একটি সমষ্টি প্রশ্ন চালায়।
Firestore.RunQuery
এর মতো Document
ফলাফল তৈরি করার পরিবর্তে, এই API AggregationResult
সার্ভার-সাইডের একটি সিরিজ তৈরি করতে একটি সমষ্টি চালানোর অনুমতি দেয়।
উচ্চ-স্তরের উদাহরণ:
-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
HTTP অনুরোধ
POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runAggregationQuery
URL gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করে।
পাথ প্যারামিটার
পরামিতি | |
---|---|
parent | প্রয়োজন। মূল সম্পদের নাম। বিন্যাসে: |
শরীরের অনুরোধ
অনুরোধের অংশে নিম্নলিখিত কাঠামো সহ ডেটা রয়েছে:
JSON প্রতিনিধিত্ব |
---|
{ "explainOptions": { object ( |
ক্ষেত্র | |
---|---|
explainOptions | ঐচ্ছিক। প্রশ্নের জন্য বিকল্প ব্যাখ্যা করুন। সেট করা হলে, অতিরিক্ত ক্যোয়ারী পরিসংখ্যান ফেরত দেওয়া হবে। যদি না হয়, শুধুমাত্র প্রশ্নের ফলাফল ফেরত দেওয়া হবে. |
ইউনিয়ন ক্ষেত্র query_type । চালানোর জন্য প্রশ্ন. query_type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
structuredAggregationQuery | একটি সমষ্টি প্রশ্ন. |
ইউনিয়ন ক্ষেত্রের consistency_selector । ক্যোয়ারীটির জন্য ধারাবাহিকতা মোড, শক্তিশালী সামঞ্জস্যের জন্য ডিফল্ট। consistency_selector নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
transaction | ইতিমধ্যে সক্রিয় লেনদেনের মধ্যে একত্রীকরণ চালান। কোয়েরি চালানোর জন্য এখানে মান হল অস্বচ্ছ লেনদেন আইডি। একটি base64-এনকোডেড স্ট্রিং। |
newTransaction | ক্যোয়ারির অংশ হিসেবে একটি নতুন লেনদেন শুরু করে, ডিফল্ট করে শুধুমাত্র-পঠন। স্ট্রীমের প্রথম প্রতিক্রিয়া হিসাবে নতুন লেনদেন আইডি ফেরত দেওয়া হবে। |
readTime | প্রদত্ত টাইমস্ট্যাম্পে অনুসন্ধান চালায়। এটি অবশ্যই গত এক ঘন্টার মধ্যে একটি মাইক্রোসেকেন্ড নির্ভুল টাইমস্ট্যাম্প হতে হবে, অথবা যদি পয়েন্ট-ইন-টাইম পুনরুদ্ধার সক্ষম করা থাকে, অতিরিক্তভাবে গত 7 দিনের মধ্যে পুরো মিনিটের টাইমস্ট্যাম্প হতে পারে৷ RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: |
প্রতিক্রিয়া শরীর
Firestore.RunAggregationQuery
এর প্রতিক্রিয়া।
সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:
JSON প্রতিনিধিত্ব |
---|
{ "result": { object ( |
ক্ষেত্র | |
---|---|
result | একটি একক সমষ্টির ফলাফল। আংশিক অগ্রগতি রিপোর্ট করার সময় উপস্থিত নয়। |
transaction | এই অনুরোধের অংশ হিসাবে লেনদেন শুরু হয়েছিল। অনুরোধটি একটি নতুন লেনদেন শুরু করার অনুরোধ করলে শুধুমাত্র প্রথম প্রতিক্রিয়ায় উপস্থিত হন। একটি base64-এনকোডেড স্ট্রিং। |
readTime | যে সময়ে সমষ্টিগত ফলাফল গণনা করা হয়েছিল। এটি সর্বদা একঘেয়েভাবে বৃদ্ধি পাচ্ছে; এই ক্ষেত্রে, রেজাল্ট স্ট্রীমের পূর্ববর্তী অ্যাগ্রিগেশন রেজাল্ট তাদের যদি ক্যোয়ারী কোন ফলাফল না দেয়, তাহলে RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: |
explainMetrics | প্রশ্ন মেট্রিক্স ব্যাখ্যা. এটি শুধুমাত্র তখনই উপস্থিত থাকে যখন |
অনুমোদনের সুযোগ
নিম্নলিখিত OAuth সুযোগগুলির মধ্যে একটি প্রয়োজন:
-
https://www.googleapis.com/auth/datastore
-
https://www.googleapis.com/auth/cloud-platform
আরও তথ্যের জন্য, প্রমাণীকরণ ওভারভিউ দেখুন।
স্ট্রাকচার্ড অ্যাগ্রিগেশন কোয়েরি
একটি StructuredQuery
এর উপর একটি সমষ্টি চালানোর জন্য Firestore ক্যোয়ারী।
JSON প্রতিনিধিত্ব |
---|
{ "aggregations": [ { object ( |
ক্ষেত্র | |
---|---|
aggregations[] | ঐচ্ছিক। প্রয়োজন:
|
ইউনিয়ন ক্ষেত্র query_type । একত্রিত করার জন্য বেস কোয়েরি। query_type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
structuredQuery | নেস্টেড স্ট্রাকচার্ড কোয়েরি। |
সমষ্টি
একটি সমষ্টিকে সংজ্ঞায়িত করে যা একটি একক ফলাফল তৈরি করে।
JSON প্রতিনিধিত্ব |
---|
{ "alias": string, // Union field |
ক্ষেত্র | |
---|---|
alias | ঐচ্ছিক। একত্রিতকরণের ফলাফল সংরক্ষণ করার জন্য ক্ষেত্রের ঐচ্ছিক নাম। যদি প্রদান না করা হয়, Firestore ফর্ম্যাট
হয়ে যায়:
প্রয়োজন:
|
ইউনিয়ন ফিল্ড operator । সঞ্চালনের জন্য একত্রিতকরণের ধরন, প্রয়োজনীয়৷ operator নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
count | কাউন্ট এগ্রিগেটর। |
sum | সমষ্টি সমষ্টি. |
avg | গড় সমষ্টিকারী। |
গণনা
প্রশ্নের সাথে মেলে এমন নথির সংখ্যা।
COUNT(*)
একত্রীকরণ ফাংশন সমগ্র নথিতে কাজ করে তাই এটির কোনো ক্ষেত্রের উল্লেখ প্রয়োজন হয় না।
JSON প্রতিনিধিত্ব |
---|
{ "upTo": string } |
ক্ষেত্র | |
---|---|
upTo | ঐচ্ছিক। গণনা করার জন্য সর্বাধিক সংখ্যক নথিতে ঐচ্ছিক সীমাবদ্ধতা। এটি স্ক্যান করার জন্য নথির সংখ্যা, বিলম্বিতা এবং খরচ সীমিত করার জন্য একটি উপরের সীমা সেট করার একটি উপায় প্রদান করে। অনির্দিষ্ট কোন সীমা হিসাবে ব্যাখ্যা করা হয়. উচ্চ-স্তরের উদাহরণ:
প্রয়োজন:
|
সমষ্টি
অনুরোধ করা ক্ষেত্রের মানগুলির সমষ্টি৷
শুধুমাত্র সাংখ্যিক মান একত্রিত করা হবে।
NULL
সহ সমস্ত অ-সাংখ্যিক মান বাদ দেওয়া হয়েছে৷সমষ্টিগত মানগুলিতে
NaN
থাকলে,NaN
প্রদান করে। ইনফিনিটি গণিত IEEE-754 মান অনুসরণ করে।সমষ্টিগত মান সেট খালি থাকলে, 0 প্রদান করে।
একটি 64-বিট পূর্ণসংখ্যা প্রদান করে যদি সমস্ত একত্রিত সংখ্যা পূর্ণসংখ্যা হয় এবং সমষ্টির ফলাফল ওভারফ্লো না হয়। অন্যথায়, ফলাফল দ্বিগুণ হিসাবে ফিরে আসে। মনে রাখবেন যে সমস্ত সমষ্টিগত মান পূর্ণসংখ্যা হলেও, ফলাফলটি দ্বৈত হিসাবে ফেরত দেওয়া হয় যদি এটি একটি 64-বিট স্বাক্ষরিত পূর্ণসংখ্যার মধ্যে ফিট করতে না পারে। যখন এটি ঘটে, প্রত্যাবর্তিত মান নির্ভুলতা হারাবে।
যখন আন্ডারফ্লো হয়, তখন ভাসমান-বিন্দু সমষ্টি অ-নির্ধারক হয়। এর মানে হল যে অন্তর্নিহিত মানগুলির কোনও পরিবর্তন ছাড়াই একই কোয়েরি বারবার চালানোর ফলে প্রতিবার কিছুটা ভিন্ন ফলাফল হতে পারে। এই ক্ষেত্রে, মানগুলি ফ্লোটিং-পয়েন্ট সংখ্যার উপর পূর্ণসংখ্যা হিসাবে সংরক্ষণ করা উচিত।
JSON প্রতিনিধিত্ব |
---|
{
"field": {
object ( |
ক্ষেত্র | |
---|---|
field | একত্রিত করার জন্য ক্ষেত্র। |
গড়
অনুরোধ করা ক্ষেত্রের মানগুলির গড়।
শুধুমাত্র সাংখ্যিক মান একত্রিত করা হবে।
NULL
সহ সমস্ত অ-সাংখ্যিক মান বাদ দেওয়া হয়েছে৷সমষ্টিগত মানগুলিতে
NaN
থাকলে,NaN
প্রদান করে। ইনফিনিটি গণিত IEEE-754 মান অনুসরণ করে।সমষ্টিগত মান সেট খালি থাকলে,
NULL
প্রদান করে।সর্বদা ডবল হিসাবে ফলাফল প্রদান করে।
JSON প্রতিনিধিত্ব |
---|
{
"field": {
object ( |
ক্ষেত্র | |
---|---|
field | একত্রিত করার জন্য ক্ষেত্র। |
সমষ্টির ফলাফল
Firestore একত্রীকরণ ক্যোয়ারী থেকে একটি একক বালতির ফলাফল।
aggregateFields
কীগুলি একটি সমষ্টিগত প্রশ্নের সমস্ত ফলাফলের জন্য একই, নথির প্রশ্নগুলির বিপরীতে যেখানে প্রতিটি ফলাফলের জন্য বিভিন্ন ক্ষেত্র উপস্থিত থাকতে পারে৷
JSON প্রতিনিধিত্ব |
---|
{
"aggregateFields": {
string: {
object ( |
ক্ষেত্র | |
---|---|
aggregateFields | একত্রীকরণ ফাংশনের ফলাফল, যেমন: কী হল ইনপুটে একত্রীকরণ ফাংশনের জন্য নির্ধারিত |
একটি সমষ্টি প্রশ্ন চালায়।
Firestore.RunQuery
এর মতো Document
ফলাফল তৈরি করার পরিবর্তে, এই API AggregationResult
সার্ভার-সাইডের একটি সিরিজ তৈরি করতে একটি সমষ্টি চালানোর অনুমতি দেয়।
উচ্চ-স্তরের উদাহরণ:
-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
HTTP অনুরোধ
POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runAggregationQuery
URL gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করে।
পাথ প্যারামিটার
পরামিতি | |
---|---|
parent | প্রয়োজন। মূল সম্পদের নাম। বিন্যাসে: |
শরীরের অনুরোধ
অনুরোধের অংশে নিম্নলিখিত কাঠামো সহ ডেটা রয়েছে:
JSON প্রতিনিধিত্ব |
---|
{ "explainOptions": { object ( |
ক্ষেত্র | |
---|---|
explainOptions | ঐচ্ছিক। প্রশ্নের জন্য বিকল্প ব্যাখ্যা করুন। সেট করা হলে, অতিরিক্ত ক্যোয়ারী পরিসংখ্যান ফেরত দেওয়া হবে। যদি না হয়, শুধুমাত্র প্রশ্নের ফলাফল ফেরত দেওয়া হবে. |
ইউনিয়ন ক্ষেত্র query_type । চালানোর জন্য প্রশ্ন. query_type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
structuredAggregationQuery | একটি সমষ্টি প্রশ্ন. |
ইউনিয়ন ক্ষেত্রের consistency_selector । ক্যোয়ারীটির জন্য ধারাবাহিকতা মোড, শক্তিশালী সামঞ্জস্যের জন্য ডিফল্ট। consistency_selector নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
transaction | ইতিমধ্যে সক্রিয় লেনদেনের মধ্যে একত্রীকরণ চালান। কোয়েরি চালানোর জন্য এখানে মান হল অস্বচ্ছ লেনদেন আইডি। একটি base64-এনকোডেড স্ট্রিং। |
newTransaction | ক্যোয়ারির অংশ হিসেবে একটি নতুন লেনদেন শুরু করে, ডিফল্ট করে শুধুমাত্র-পঠন। স্ট্রীমের প্রথম প্রতিক্রিয়া হিসাবে নতুন লেনদেন আইডি ফেরত দেওয়া হবে। |
readTime | প্রদত্ত টাইমস্ট্যাম্পে অনুসন্ধান চালায়। এটি অবশ্যই গত এক ঘন্টার মধ্যে একটি মাইক্রোসেকেন্ড নির্ভুল টাইমস্ট্যাম্প হতে হবে, অথবা যদি পয়েন্ট-ইন-টাইম পুনরুদ্ধার সক্ষম করা থাকে, অতিরিক্তভাবে গত 7 দিনের মধ্যে পুরো মিনিটের টাইমস্ট্যাম্প হতে পারে৷ RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: |
প্রতিক্রিয়া শরীর
Firestore.RunAggregationQuery
এর প্রতিক্রিয়া।
সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:
JSON প্রতিনিধিত্ব |
---|
{ "result": { object ( |
ক্ষেত্র | |
---|---|
result | একটি একক সমষ্টির ফলাফল। আংশিক অগ্রগতি রিপোর্ট করার সময় উপস্থিত নয়। |
transaction | এই অনুরোধের অংশ হিসাবে লেনদেন শুরু হয়েছিল। অনুরোধটি একটি নতুন লেনদেন শুরু করার অনুরোধ করলে শুধুমাত্র প্রথম প্রতিক্রিয়ায় উপস্থিত হন। একটি base64-এনকোডেড স্ট্রিং। |
readTime | যে সময়ে সমষ্টিগত ফলাফল গণনা করা হয়েছিল। এটি সর্বদা একঘেয়েভাবে বৃদ্ধি পাচ্ছে; এই ক্ষেত্রে, রেজাল্ট স্ট্রীমের পূর্ববর্তী অ্যাগ্রিগেশন রেজাল্ট তাদের যদি ক্যোয়ারী কোন ফলাফল না দেয়, তাহলে RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: |
explainMetrics | প্রশ্ন মেট্রিক্স ব্যাখ্যা. এটি শুধুমাত্র তখনই উপস্থিত থাকে যখন |
অনুমোদনের সুযোগ
নিম্নলিখিত OAuth সুযোগগুলির মধ্যে একটি প্রয়োজন:
-
https://www.googleapis.com/auth/datastore
-
https://www.googleapis.com/auth/cloud-platform
আরও তথ্যের জন্য, প্রমাণীকরণ ওভারভিউ দেখুন।
স্ট্রাকচার্ড অ্যাগ্রিগেশন কোয়েরি
একটি StructuredQuery
এর উপর একটি সমষ্টি চালানোর জন্য Firestore ক্যোয়ারী।
JSON প্রতিনিধিত্ব |
---|
{ "aggregations": [ { object ( |
ক্ষেত্র | |
---|---|
aggregations[] | ঐচ্ছিক। প্রয়োজন:
|
ইউনিয়ন ক্ষেত্র query_type । একত্রিত করার জন্য বেস কোয়েরি। query_type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
structuredQuery | নেস্টেড স্ট্রাকচার্ড কোয়েরি। |
সমষ্টি
একটি সমষ্টিকে সংজ্ঞায়িত করে যা একটি একক ফলাফল তৈরি করে।
JSON প্রতিনিধিত্ব |
---|
{ "alias": string, // Union field |
ক্ষেত্র | |
---|---|
alias | ঐচ্ছিক। একত্রিতকরণের ফলাফল সংরক্ষণ করার জন্য ক্ষেত্রের ঐচ্ছিক নাম। যদি প্রদান না করা হয়, Firestore ফর্ম্যাট
হয়ে যায়:
প্রয়োজন:
|
ইউনিয়ন ফিল্ড operator । সঞ্চালনের জন্য একত্রিতকরণের ধরন, প্রয়োজনীয়৷ operator নিম্নলিখিতগুলির মধ্যে একটি হতে পারে: | |
count | কাউন্ট এগ্রিগেটর। |
sum | সমষ্টি সমষ্টি. |
avg | গড় সমষ্টিকারী। |
গণনা
প্রশ্নের সাথে মেলে এমন নথির সংখ্যা।
COUNT(*)
একত্রীকরণ ফাংশন সমগ্র নথিতে কাজ করে তাই এটির কোনো ক্ষেত্রের উল্লেখ প্রয়োজন হয় না।
JSON প্রতিনিধিত্ব |
---|
{ "upTo": string } |
ক্ষেত্র | |
---|---|
upTo | ঐচ্ছিক। গণনা করার জন্য সর্বাধিক সংখ্যক নথিতে ঐচ্ছিক সীমাবদ্ধতা। এটি স্ক্যান করার জন্য নথির সংখ্যা, বিলম্বিতা এবং খরচ সীমিত করার জন্য একটি উপরের সীমা সেট করার একটি উপায় প্রদান করে। অনির্দিষ্ট কোন সীমা হিসাবে ব্যাখ্যা করা হয়. উচ্চ-স্তরের উদাহরণ:
প্রয়োজন:
|
সমষ্টি
অনুরোধ করা ক্ষেত্রের মানগুলির সমষ্টি৷
শুধুমাত্র সাংখ্যিক মান একত্রিত করা হবে।
NULL
সহ সমস্ত অ-সাংখ্যিক মান বাদ দেওয়া হয়েছে৷সমষ্টিগত মানগুলিতে
NaN
থাকলে,NaN
প্রদান করে। ইনফিনিটি গণিত IEEE-754 মান অনুসরণ করে।সমষ্টিগত মান সেট খালি থাকলে, 0 প্রদান করে।
একটি 64-বিট পূর্ণসংখ্যা প্রদান করে যদি সমস্ত একত্রিত সংখ্যা পূর্ণসংখ্যা হয় এবং সমষ্টির ফলাফল ওভারফ্লো না হয়। অন্যথায়, ফলাফল দ্বিগুণ হিসাবে ফিরে আসে। মনে রাখবেন যে সমস্ত সমষ্টিগত মান পূর্ণসংখ্যা হলেও, ফলাফলটি দ্বৈত হিসাবে ফেরত দেওয়া হয় যদি এটি একটি 64-বিট স্বাক্ষরিত পূর্ণসংখ্যার মধ্যে ফিট করতে না পারে। যখন এটি ঘটে, প্রত্যাবর্তিত মান নির্ভুলতা হারাবে।
যখন আন্ডারফ্লো হয়, তখন ভাসমান-বিন্দু সমষ্টি অ-নির্ধারক হয়। এর মানে হল যে অন্তর্নিহিত মানগুলির কোনও পরিবর্তন ছাড়াই একই কোয়েরি বারবার চালানোর ফলে প্রতিবার কিছুটা ভিন্ন ফলাফল হতে পারে। এই ক্ষেত্রে, মানগুলি ফ্লোটিং-পয়েন্ট সংখ্যার উপর পূর্ণসংখ্যা হিসাবে সংরক্ষণ করা উচিত।
JSON প্রতিনিধিত্ব |
---|
{
"field": {
object ( |
ক্ষেত্র | |
---|---|
field | একত্রিত করার জন্য ক্ষেত্র। |
গড়
অনুরোধ করা ক্ষেত্রের মানগুলির গড়।
শুধুমাত্র সাংখ্যিক মান একত্রিত করা হবে।
NULL
সহ সমস্ত অ-সাংখ্যিক মান বাদ দেওয়া হয়েছে৷সমষ্টিগত মানগুলিতে
NaN
থাকলে,NaN
প্রদান করে। ইনফিনিটি গণিত IEEE-754 মান অনুসরণ করে।সমষ্টিগত মান সেট খালি থাকলে,
NULL
প্রদান করে।সর্বদা ডবল হিসাবে ফলাফল প্রদান করে।
JSON প্রতিনিধিত্ব |
---|
{
"field": {
object ( |
ক্ষেত্র | |
---|---|
field | একত্রিত করার জন্য ক্ষেত্র। |
সমষ্টির ফলাফল
Firestore একত্রীকরণ ক্যোয়ারী থেকে একটি একক বালতির ফলাফল।
aggregateFields
কীগুলি একটি সমষ্টিগত প্রশ্নের সমস্ত ফলাফলের জন্য একই, নথির প্রশ্নগুলির বিপরীতে যেখানে প্রতিটি ফলাফলের জন্য বিভিন্ন ক্ষেত্র উপস্থিত থাকতে পারে৷
JSON প্রতিনিধিত্ব |
---|
{
"aggregateFields": {
string: {
object ( |
ক্ষেত্র | |
---|---|
aggregateFields | একত্রীকরণ ফাংশনের ফলাফল, যেমন: কী হল ইনপুটে একত্রীকরণ ফাংশনের জন্য নির্ধারিত |