Complex Query লেখা এবং ব্যবহার

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

337

TinyDB-তে Complex Query তৈরি এবং ব্যবহার করা খুবই সহজ এবং শক্তিশালী। এটি Query মডিউল ব্যবহার করে ডেটা ফিল্টারিং এবং অনুসন্ধানের জন্য বিভিন্ন শর্ত তৈরি করতে দেয়। একাধিক শর্ত সংযুক্ত করে আরও জটিল অনুসন্ধান সম্ভব।


Complex Query এর ধারণা

TinyDB-তে Complex Query লেখার সময় আপনি Query Object এবং Logical Operators (যেমন: and, or, not) ব্যবহার করতে পারেন।

Query Object:
TinyDB-তে Query মডিউল ব্যবহার করে ডেটার নির্দিষ্ট ক্ষেত্রের উপর শর্ত তৈরি করা হয়।

Logical Operators:

  • & (AND): দুটি বা তার বেশি শর্ত একসঙ্গে পূরণ করতে হবে।
  • | (OR): যেকোনো একটি শর্ত পূরণ করতে হবে।
  • ~ (NOT): একটি শর্তের বিপরীতে ডেটা ফিল্টার করে।

Complex Query লেখার উদাহরণ

উদাহরণ ১: একাধিক শর্তযুক্ত অনুসন্ধান (AND এবং OR)

from tinydb import TinyDB, Query

# ডাটাবেস তৈরি
db = TinyDB('data.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'})

# Query তৈরি
User = Query()

# শর্ত: বয়স ২৫ বা তার বেশি এবং শহর 'Dhaka'
result = db.search((User.age >= 25) & (User.city == 'Dhaka'))

print(result)

উৎপাদন:

[{'name': 'Rahim', 'age': 30, 'city': 'Dhaka'}]

উদাহরণ ২: OR অপারেটর ব্যবহার

# শর্ত: শহর 'Dhaka' অথবা 'Sylhet'
result = db.search((User.city == 'Dhaka') | (User.city == 'Sylhet'))

print(result)

উৎপাদন:

[
    {'name': 'Rahim', 'age': 30, 'city': 'Dhaka'},
    {'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'}
]

উদাহরণ ৩: NOT অপারেটর ব্যবহার

# শর্ত: শহর 'Chittagong' নয়
result = db.search(~(User.city == 'Chittagong'))

print(result)

উৎপাদন:

[
    {'name': 'Rahim', 'age': 30, 'city': 'Dhaka'},
    {'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'}
]

অন্যান্য Complex Query ব্যবহার

উদাহরণ ৪: একাধিক ফিল্ডের শর্ত

# শর্ত: নাম 'Mehedi' এবং বয়স ২০ থেকে ২৫ এর মধ্যে
result = db.search((User.name == 'Mehedi') & (User.age >= 20) & (User.age <= 25))

print(result)

উদাহরণ ৫: একটি নির্দিষ্ট ভ্যালুর উপস্থিতি পরীক্ষা

# শর্ত: শহরের নাম তালিকায় আছে কিনা
result = db.search(User.city.one_of(['Dhaka', 'Sylhet']))

print(result)

উৎপাদন:

[
    {'name': 'Rahim', 'age': 30, 'city': 'Dhaka'},
    {'name': 'Mehedi', 'age': 22, 'city': 'Sylhet'}
]

উদাহরণ ৬: Regex ব্যবহার করে অনুসন্ধান

# শর্ত: নাম 'R' দিয়ে শুরু হয়েছে
import re
result = db.search(User.name.matches(r'^R'))

print(result)

উৎপাদন:

[{'name': 'Rahim', 'age': 30, 'city': 'Dhaka'}]

Complex Query ব্যবহারের সুবিধা

  1. শক্তিশালী ফিল্টারিং: একাধিক শর্ত একত্রিত করে নির্দিষ্ট ডেটা অনুসন্ধান করা সহজ।
  2. Dynamic Querying: ডেটার উপর ভিত্তি করে শর্ত পরিবর্তন করা যায়।
  3. সহজ ইন্টিগ্রেশন: পাইথনের Query মডিউল ব্যবহার করে Query গুলো অত্যন্ত সহজে লেখা যায়।
  4. উচ্চ পারফরম্যান্স: ইনডেক্সিংয়ের মাধ্যমে দ্রুত অনুসন্ধান সম্ভব।

সারাংশ

TinyDB-তে Complex Query ব্যবহার করে ডেটার উপর নির্দিষ্ট শর্ত প্রয়োগ করা সম্ভব। Logical Operators (and, or, not) এবং Query মডিউলের সাহায্যে ডেটা ফিল্টার করা যায়, যা এটি ছোট ডেটাবেস ম্যানেজমেন্টের জন্য কার্যকর এবং সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...