TinyDB-তে Query হলো ডেটাবেস থেকে ডেটা অনুসন্ধান, ফিল্টার, আপডেট বা মুছে ফেলার একটি শক্তিশালী পদ্ধতি। এটি নির্দিষ্ট শর্ত (conditions) অনুযায়ী ডেটা খুঁজে বের করার জন্য ব্যবহার করা হয়। Query TinyDB-র একটি গুরুত্বপূর্ণ উপাদান, যা ব্যবহারকারীদের ডেটাবেস পরিচালনা করতে সহজ করে তোলে।
Query কীভাবে কাজ করে?
- Query Object: TinyDB-তে একটি Query Object তৈরি করতে হয়, যা শর্ত অনুযায়ী ডেটা ফিল্টার করে।
- শর্তাবলী: শর্তাবলী (conditions) তৈরি করার জন্য তুলনামূলক অপারেটর যেমন
==,!=,<,>, ইত্যাদি ব্যবহার করা হয়। - ডেটা অনুসন্ধান: Query Object ব্যবহার করে ডেটা পড়া, আপডেট করা এবং মুছে ফেলা সম্ভব।
Query Object তৈরি
TinyDB-তে Query Object তৈরি করার জন্য Query ক্লাস ব্যবহার করা হয়।
from tinydb import Query
User = Query()
উপরের কোডে User হলো একটি Query Object, যা ডেটা ফিল্টার করার জন্য ব্যবহৃত হবে।
Query এর মাধ্যমে ডেটা অনুসন্ধান
search() পদ্ধতি ব্যবহার করে ডেটা অনুসন্ধান করা যায়। উদাহরণস্বরূপ:
from tinydb import TinyDB, Query
# ডাটাবেস তৈরি
db = TinyDB('db.json')
# ডেটা যোগ করা
db.insert({'name': 'Aziz', 'age': 25, 'city': 'Dhaka'})
db.insert({'name': 'Mehedi', 'age': 22, 'city': 'Chittagong'})
# Query Object তৈরি
User = Query()
# নাম অনুসারে ডেটা অনুসন্ধান
result = db.search(User.name == 'Aziz')
print(result)
আউটপুট:
[{'name': 'Aziz', 'age': 25, 'city': 'Dhaka'}]
Query এর মাধ্যমে ডেটা আপডেট
update() পদ্ধতি ব্যবহার করে নির্দিষ্ট শর্তের ভিত্তিতে ডেটা আপডেট করা যায়।
db.update({'age': 26}, User.name == 'Aziz')
উপরের উদাহরণে, যেসব ডকুমেন্টে name ফিল্ডের মান 'Aziz' আছে, সেগুলোর age ফিল্ড আপডেট করে 26 করা হবে।
Query এর মাধ্যমে ডেটা মুছে ফেলা
remove() পদ্ধতি ব্যবহার করে ডেটা মুছে ফেলা যায়।
db.remove(User.city == 'Chittagong')
উপরের উদাহরণে, যেসব ডকুমেন্টে city ফিল্ডের মান 'Chittagong' আছে, সেগুলো ডাটাবেস থেকে মুছে ফেলা হবে।
Query এর মাধ্যমে শর্তাবলী (Conditions)
TinyDB-তে নিম্নলিখিত অপারেটর ব্যবহার করে শর্ত নির্ধারণ করা যায়:
| অপারেটর | উদ্দেশ্য | উদাহরণ |
|---|---|---|
== | সমান | User.name == 'Aziz' |
!= | সমান নয় | User.age != 30 |
< | ছোট | User.age < 25 |
> | বড় | User.age > 25 |
<= | ছোট বা সমান | User.age <= 25 |
>= | বড় বা সমান | User.age >= 25 |
exists | ফিল্ডটি উপস্থিত কিনা | User.city.exists() |
matches | প্যাটার্ন ম্যাচ করে কিনা | User.name.matches(r'^A.*') |
উদাহরণ: জটিল শর্ত ব্যবহার
TinyDB-তে একাধিক শর্ত যোগ করার জন্য logical operators (&, |, ~) ব্যবহার করা যায়।
# নাম 'Aziz' এবং শহর 'Dhaka' হলে
result = db.search((User.name == 'Aziz') & (User.city == 'Dhaka'))
# বয়স ২০ বছরের বেশি বা শহর 'Chittagong' হলে
result = db.search((User.age > 20) | (User.city == 'Chittagong'))
# শহর 'Dhaka' না হলে
result = db.search(~(User.city == 'Dhaka'))
সারাংশ
- Query TinyDB-তে ডেটা ফিল্টার এবং পরিচালনার জন্য ব্যবহৃত একটি পদ্ধতি।
- এটি search(), update(), এবং remove() এর মাধ্যমে ডেটা পরিচালনা করে।
- শর্তাবলী নির্ধারণের জন্য বিভিন্ন অপারেটর এবং লজিক্যাল কন্ডিশন ব্যবহার করা যায়।
- Query এর সাহায্যে ছোট থেকে মাঝারি আকারের ডেটাবেস সহজেই ম্যানেজ করা সম্ভব।
TinyDB-তে Query ডেটা পরিচালনাকে সহজ, কার্যকর এবং দ্রুততর করে তোলে।
Read more