Web Development Firestore Queries তৈরি করা (Simple, Compound, এবং Chained Queries) গাইড ও নোট

293

Firestore হল ফায়ারবেসের একটি NoSQL ক্লাউড ডাটাবেস, যা রিয়েলটাইম ডেটা সিঙ্ক্রোনাইজেশন এবং দ্রুত তথ্য অনুসন্ধান সমর্থন করে। ফায়ারবেসের Firestore queries এর মাধ্যমে আপনি আপনার ডাটাবেস থেকে তথ্য খুব সহজে অনুসন্ধান (query) করতে পারেন। Firestore এ বিভিন্ন ধরনের queries তৈরি করা যায়, যেমন Simple, Compound, এবং Chained queries

নিচে এই তিনটি ধরনের Firestore queries তৈরি করার পদ্ধতি বিশদভাবে বর্ণনা করা হয়েছে।


১. Simple Queries (সাধারণ অনুসন্ধান)

Simple Queries এমন ধরনের অনুসন্ধান, যেখানে একক শর্তের উপর ভিত্তি করে ডাটা সংগ্রহ করা হয়। সাধারণত, এটি একটি নির্দিষ্ট field এর মান অনুসারে ডাটা ফিল্টার করে।

উদাহরণ:

ধরা যাক, আপনার একটি users কালেকশন রয়েছে, যেখানে প্রত্যেকটি ডকুমেন্টের মধ্যে name এবং age রয়েছে। আপনি যদি age এর উপর ভিত্তি করে ডাটা খুঁজতে চান:

// Firestore থেকে সাধারণ অনুসন্ধান (age 30 এর বেশি ব্যবহারকারীদের খোঁজা)
const db = firebase.firestore();

db.collection("users")
  .where("age", ">", 30)
  .get()
  .then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
      console.log(doc.id, " => ", doc.data());
    });
  })
  .catch((error) => {
    console.error("Error getting documents: ", error);
  });

এখানে where() মেথডটি ব্যবহার করে আমরা age ফিল্ডের মান 30 এর চেয়ে বেশি এমন ডকুমেন্টগুলো অনুসন্ধান করছি।


২. Compound Queries (যৌগিক অনুসন্ধান)

Compound Queries এমন অনুসন্ধান, যেখানে একাধিক শর্ত ব্যবহার করা হয়। এখানে multiple conditions (একাধিক শর্ত) সংযুক্ত করা যায়, যেমন AND বা OR শর্তগুলোর সংমিশ্রণ।

উদাহরণ:

ধরা যাক, আপনি যদি age > 30 এবং city = "New York" শর্তে ডাটা খুঁজতে চান, তাহলে আপনি একটি compound query ব্যবহার করতে পারেন।

// Firestore থেকে যৌগিক অনুসন্ধান (age > 30 এবং city = "New York")
const db = firebase.firestore();

db.collection("users")
  .where("age", ">", 30)
  .where("city", "==", "New York")
  .get()
  .then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
      console.log(doc.id, " => ", doc.data());
    });
  })
  .catch((error) => {
    console.error("Error getting documents: ", error);
  });

এখানে দুটি where() শর্ত ব্যবহার করা হয়েছে:

  • প্রথমে age > 30
  • দ্বিতীয় শর্ত city == "New York"

Firestore একাধিক শর্তে ডেটা ফিল্টার করার জন্য compound query ব্যবহার করা হয়।

সতর্কতা: Firebase Firestore এ একটি compound query এ ইন্ডেক্স প্রয়োজন হয় যদি দুটি বা তার বেশি শর্ত দেওয়া থাকে। তাই কখনও কখনও আপনাকে একটি Firestore Index তৈরি করতে হতে পারে।


৩. Chained Queries (চেইন করা অনুসন্ধান)

Chained Queries হল এমন একটি পদ্ধতি যেখানে একাধিক query অপারেশন চেইন করে একটি দীর্ঘ অনুসন্ধান তৈরি করা হয়। এখানে একাধিক get() এবং where() পদ্ধতি একে অপরের সাথে যুক্ত করে ধাপে ধাপে অনুসন্ধান করা হয়।

উদাহরণ:

ধরা যাক, আপনার products নামের একটি কালেকশন রয়েছে এবং সেখানে প্রতিটি ডকুমেন্টে category এবং price ফিল্ড আছে। আপনি যদি category = "electronics" এবং price <= 500 শর্তে ডেটা খুঁজতে চান:

// Firestore থেকে চেইন করা অনুসন্ধান (category = "electronics" এবং price <= 500)
const db = firebase.firestore();

db.collection("products")
  .where("category", "==", "electronics")
  .get()
  .then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
      // price <= 500 শর্তটি চেইন করা হবে
      if (doc.data().price <= 500) {
        console.log(doc.id, " => ", doc.data());
      }
    });
  })
  .catch((error) => {
    console.error("Error getting documents: ", error);
  });

এখানে প্রথমে category == "electronics" শর্তটি কার্যকর করা হয়েছে, তারপর price <= 500 শর্তটি JavaScript কোডে চেক করা হয়েছে। এটি chained query এর একটি উদাহরণ, যেখানে multiple operations পরপর প্রয়োগ করা হচ্ছে।

আপনি যদি একই ধরনের শর্তে অনুসন্ধান চালাতে চান এবং প্রতিটি শর্ত একটি query এর মধ্যে রাখতে চান, তাহলে compound query ব্যবহার করা ভাল।


৪. Query Sorting and Ordering (অর্ডারিং এবং সাজানো)

আপনি ফায়ারবেসের Firestore queries এর সাথে অর্ডারিং এবং সাজানোর অপশনও ব্যবহার করতে পারেন, যা ডাটা পাওয়ার পরে সেটি নির্দিষ্ট ক্রমে সাজানোর জন্য ব্যবহৃত হয়।

উদাহরণ:

আপনি যদি age ফিল্ড অনুযায়ী ডেটা সাজাতে চান:

// Firestore থেকে ডেটা সাজানো (age অনুসারে ascending order)
const db = firebase.firestore();

db.collection("users")
  .orderBy("age", "asc") // age অনুসারে ascending order
  .get()
  .then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
      console.log(doc.id, " => ", doc.data());
    });
  })
  .catch((error) => {
    console.error("Error getting documents: ", error);
  });

এখানে orderBy() মেথডটি ব্যবহার করে age ফিল্ড অনুযায়ী ascending (বর্ধমান) ক্রমে ডেটা সাজানো হয়েছে।

সতর্কতা: যদি আপনি একটি compound query বা chained query তৈরি করছেন এবং orderBy ব্যবহার করছেন, তবে সব ফিল্ডগুলো যাতে indexed থাকে, তা নিশ্চিত করতে হবে।


সারাংশ

Firestore Queries তৈরি করার জন্য ফায়ারবেস বিভিন্ন ধরনের query সাপোর্ট করে:

  • Simple queries: একক শর্তের উপর ভিত্তি করে ডাটা অনুসন্ধান।
  • Compound queries: একাধিক শর্তের সাথে ডাটা অনুসন্ধান।
  • Chained queries: একাধিক query অপারেশন চেইন করে ডাটা অনুসন্ধান।

এই সব ধরনের queries ব্যবহার করে আপনি Firestore ডাটাবেস থেকে প্রয়োজনীয় ডেটা খুব সহজেই খুঁজে পেতে পারেন। Firestore Indexing এর সাহায্যে আপনি compound queries এবং ordering এর সাথে কাজ করতে পারবেন, তবে এই ক্ষেত্রে নির্দিষ্ট শর্তে indexing নিশ্চিত করা উচিত।

Content added By
Promotion

Are you sure to start over?

Loading...