Complex Queries এর জন্য Filters ব্যবহার

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - Query এবং Filter ব্যবহার
143

MongoDB-তে complex queries তৈরি করতে, বিশেষ করে যখন আপনার বিভিন্ন criteria (যেমন, AND, OR, IN, NOT, gt, lt ইত্যাদি) অনুযায়ী ডেটা ফিল্টার করতে হয়, তখন filters ব্যবহার করা হয়। MongoDB Java Driver-এ filters ব্যবহারের মাধ্যমে খুব সহজেই এসব জটিল কোয়েরি তৈরি করা সম্ভব।

MongoDB Java Driver-এ Filters ক্লাসটি একটি helper ক্লাস হিসেবে কাজ করে এবং আপনি এটি ব্যবহার করে বিভিন্ন ধরনের কোয়েরি ফিল্টার তৈরি করতে পারেন। Filters ক্লাস বিভিন্ন ধরনের ফিল্টারিং অপারেশন সরবরাহ করে যেমন eq, gt, lt, in, ne, and, or, এবং আরও অনেক কিছু।

Filters ক্লাসের ব্যবহার:

Filters ক্লাসটি MongoDB থেকে ডেটা filter করতে সাহায্য করে, যেখানে আপনি criteria এবং conditions অনুযায়ী ফিল্টার করতে পারেন।

MongoDB Filters - Commonly Used Methods:

  1. eq(): একটি নির্দিষ্ট মানের সমান মান বের করা।
  2. ne(): একটি নির্দিষ্ট মানের সমান না এমন মান বের করা।
  3. gt(): একটি নির্দিষ্ট মানের চেয়ে বড় মান বের করা।
  4. lt(): একটি নির্দিষ্ট মানের চেয়ে ছোট মান বের করা।
  5. in(): একটি নির্দিষ্ট মানের মধ্যে থাকা ডেটা বের করা।
  6. and(): একাধিক ফিল্টার শর্ত একসাথে ব্যবহার করা (AND logic)।
  7. or(): একাধিক শর্তের মধ্যে যেকোনো একটি মেলানো (OR logic)।
  8. exists(): একটি ফিল্ড যদি ডকুমেন্টে থাকে তাহলে তার মানের উপর ভিত্তি করে ফিল্টার করা।

MongoDB Filters এর উদাহরণ:

1. eq() (Equal to):

যদি আপনি MongoDB ডাটাবেস থেকে এমন ডকুমেন্ট খুঁজতে চান যেখানে কোন ফিল্ডের মান একটি নির্দিষ্ট মানের সমান।

import com.mongodb.client.*;
import com.mongodb.client.model.Filters;
import org.bson.Document;

public class FilterExample {
    public static void main(String[] args) {
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase database = mongoClient.getDatabase("testdb");
        MongoCollection<Document> collection = database.getCollection("users");

        // Filtering by "age" == 30
        FindIterable<Document> results = collection.find(Filters.eq("age", 30));
        
        for (Document doc : results) {
            System.out.println(doc.toJson());
        }
        
        mongoClient.close();
    }
}

2. gt() (Greater than):

যদি আপনি MongoDB ডাটাবেস থেকে এমন ডকুমেন্ট খুঁজতে চান যেখানে কোন ফিল্ডের মান একটি নির্দিষ্ট মানের চেয়ে বড়।

FindIterable<Document> results = collection.find(Filters.gt("age", 25));

এখানে, age 25 এর চেয়ে বড় এমন ডকুমেন্টগুলো return হবে।

3. lt() (Less than):

যদি আপনি MongoDB থেকে ডকুমেন্ট খুঁজতে চান যেখানে কোন ফিল্ডের মান একটি নির্দিষ্ট মানের চেয়ে কম।

FindIterable<Document> results = collection.find(Filters.lt("age", 40));

এখানে, age 40 এর চেয়ে কম এমন ডকুমেন্টগুলো return হবে।

4. in() (In a range or list of values):

যদি আপনি MongoDB ডাটাবেস থেকে এমন ডকুমেন্ট খুঁজতে চান যেখানে কোন ফিল্ডের মান একটি নির্দিষ্ট সেটের মধ্যে রয়েছে।

FindIterable<Document> results = collection.find(Filters.in("age", 25, 30, 35));

এখানে, age 25, 30, বা 35 যেকোনো মানের ডকুমেন্ট return করবে।

5. and() (Multiple conditions with AND logic):

যদি আপনি একাধিক শর্ত দিয়ে ডকুমেন্ট ফিল্টার করতে চান, যেখানে সব শর্ত মেনে চলতে হবে।

FindIterable<Document> results = collection.find(
    Filters.and(
        Filters.eq("age", 30),
        Filters.eq("city", "New York")
    )
);

এখানে, age 30 এবং city "New York" এই দুই শর্ত মিলে এমন ডকুমেন্টগুলো return হবে।

6. or() (Multiple conditions with OR logic):

যদি আপনি একাধিক শর্ত দিয়ে ডকুমেন্ট ফিল্টার করতে চান, যেখানে যেকোনো একটি শর্ত মিলে চলতে হবে।

FindIterable<Document> results = collection.find(
    Filters.or(
        Filters.eq("city", "New York"),
        Filters.eq("city", "Los Angeles")
    )
);

এখানে, city "New York" অথবা "Los Angeles" যেকোনো একটিতে মিলে এমন ডকুমেন্টগুলো return হবে।

7. exists() (Field existence check):

যদি আপনি এমন ডকুমেন্ট খুঁজতে চান যেখানে কোনো ফিল্ড উপস্থিত (এবং তার মান হতে পারে null বা non-null)।

FindIterable<Document> results = collection.find(Filters.exists("email", true));

এখানে, email ফিল্ডটি যেসব ডকুমেন্টে উপস্থিত, সেগুলো return হবে।


Complex Query Example:

ধরা যাক, আপনি MongoDB থেকে এমন ব্যবহারকারীদের খুঁজতে চান যারা 30 বছরের বেশি, "New York" এ বসবাস করে এবং তাদের email ফিল্ড উপস্থিত:

FindIterable<Document> results = collection.find(
    Filters.and(
        Filters.gt("age", 30),
        Filters.eq("city", "New York"),
        Filters.exists("email", true)
    )
);

for (Document doc : results) {
    System.out.println(doc.toJson());
}

এখানে, আমরা Filters.and() ব্যবহার করে একাধিক ফিল্টার প্রয়োগ করেছি যা একসাথে কাজ করবে।


MongoDB তে complex queries তৈরি করতে Filters ক্লাস খুবই উপকারী। এটি আপনাকে logical operations (যেমন and, or), range queries (যেমন gt, lt), existence checks (যেমন exists), এবং আরও অনেক শর্তের মাধ্যমে ডেটা ফিল্টার করতে সক্ষম করে। MongoDB Java Driver এর মাধ্যমে আপনি সহজে MongoDB তে ফিল্টার প্রয়োগ করে জটিল কোয়েরি পরিচালনা করতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...