Query লেখা এবং ডেটা Fetch করা

TinyDB এর বেসিক Query এবং Data Filtering - টাইনিডিবি (TinyDB) - Database Tutorials

401

TinyDB-তে ডেটা Fetch করার জন্য Query ক্লাস ব্যবহার করা হয়। এটি ডেটাবেস থেকে নির্দিষ্ট ক্রাইটেরিয়া অনুযায়ী ডেটা অনুসন্ধান এবং রিট্রাইভ করার একটি কার্যকর উপায় প্রদান করে।


Query তৈরি করা

Query ক্লাস ব্যবহার করে ডেটাবেসে বিভিন্ন শর্ত (conditions) তৈরি করা যায়। এটি Pythonic Syntax ব্যবহার করে ডেটা অনুসন্ধান এবং ফিল্টারিং সহজ করে।

উদাহরণ:

from tinydb import TinyDB, Query

# ডাটাবেস তৈরি
db = TinyDB('db.json')

# ডেটা যোগ করা
db.insert({'name': 'Rahim', 'age': 30, 'city': 'Dhaka'})
db.insert({'name': 'Karim', 'age': 25, 'city': 'Chittagong'})
db.insert({'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'})

ডেটা Fetch করা

১. নির্দিষ্ট শর্ত অনুযায়ী ডেটা অনুসন্ধান (search)

search পদ্ধতি ব্যবহার করে নির্দিষ্ট শর্ত অনুযায়ী ডেটা Fetch করা যায়।

# Query ক্লাস থেকে শর্ত তৈরি
User = Query()

# 'name' এর মান 'Rahim' এমন ডেটা Fetch করা
result = db.search(User.name == 'Rahim')
print(result)

# আউটপুট:
# [{'name': 'Rahim', 'age': 30, 'city': 'Dhaka'}]

২. একটি নির্দিষ্ট ডেটা রেকর্ড Fetch করা (get)

get পদ্ধতি ব্যবহার করে শুধুমাত্র একটি নির্দিষ্ট রেকর্ড Fetch করা যায়।

# 'city' এর মান 'Sylhet' এমন একটি রেকর্ড Fetch করা
record = db.get(User.city == 'Sylhet')
print(record)

# আউটপুট:
# {'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'}

৩. সব ডেটা Fetch করা (all)

all পদ্ধতি ব্যবহার করে ডাটাবেসে থাকা সব ডেটা দেখা যায়।

# সব ডেটা Fetch করা
all_data = db.all()
print(all_data)

# আউটপুট:
# [{'name': 'Rahim', 'age': 30, 'city': 'Dhaka'},
#  {'name': 'Karim', 'age': 25, 'city': 'Chittagong'},
#  {'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'}]

শর্ত অনুযায়ী ডেটা Fetch করার উদাহরণ

১. তুলনা অপারেটর ব্যবহার

# 'age' ২৫ এর বেশি এমন ডেটা Fetch করা
result = db.search(User.age > 25)
print(result)

# আউটপুট:
# [{'name': 'Rahim', 'age': 30, 'city': 'Dhaka'}]

২. একাধিক শর্ত ব্যবহার

# 'age' ২৫ এবং 'city' 'Chittagong' এমন ডেটা Fetch করা
result = db.search((User.age == 25) & (User.city == 'Chittagong'))
print(result)

# আউটপুট:
# [{'name': 'Karim', 'age': 25, 'city': 'Chittagong'}]

৩. শর্ত নেগেট করা

# 'city' এর মান 'Dhaka' নয় এমন ডেটা Fetch করা
result = db.search(~(User.city == 'Dhaka'))
print(result)

# আউটপুট:
# [{'name': 'Karim', 'age': 25, 'city': 'Chittagong'},
#  {'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'}]

Query এর সাথে Function ব্যবহার

কাস্টম শর্ত ব্যবহার

test পদ্ধতি ব্যবহার করে কাস্টম ফাংশন দিয়ে শর্ত নির্ধারণ করা যায়।

# এমন ডেটা Fetch করা যেখানে 'age' ২৫ এর চেয়ে বেশি
result = db.search(User.age.test(lambda x: x > 25))
print(result)

# আউটপুট:
# [{'name': 'Rahim', 'age': 30, 'city': 'Dhaka'}]

সারাংশ

TinyDB-তে Query এবং শর্ত ব্যবহার করে ডেটা Fetch করা সহজ এবং কার্যকর। আপনি নির্দিষ্ট মান, তুলনা অপারেটর, এবং কাস্টম ফাংশন ব্যবহার করে ডেটা অনুসন্ধান করতে পারেন। এভাবে ডেটা ম্যানেজমেন্ট খুবই দ্রুত এবং সরল পদ্ধতিতে সম্পন্ন করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...