কম্পিউটার টিউটোরিয়াল

MongoDB-এ অ্যারে ফিল্ডে নির্দিষ্ট ফিল্ড ভ্যালু না থাকা ডকুমেন্ট খুঁজে বের করা


$nin অপারেটর ব্যবহার করে অ্যারে এলিমেন্ট ফিল্টার করা

যদি আপনি এমন ডকুমেন্ট খুঁজতে চান যাদের অ্যারে ফিল্ডে নির্দিষ্ট একটি ভ্যালু না থাকে, তবে $nin (not in) অপারেটর ব্যবহার করতে পারেন।

উদাহরণ ডেটা

> db.documentWithAParticularFieldValueDemo.insertOne({
  "StudentId": 101,
  "StudentDetails": [
    { "TheoryMarks": 78, "PracticalMarks": 91 },
    { "TheoryMarks": 75, "PracticalMarks": 75 }
  ]
});
> db.documentWithAParticularFieldValueDemo.insertOne({
  "StudentId": 102,
  "StudentDetails": [
    { "TheoryMarks": 91, "PracticalMarks": 91 },
    { "TheoryMarks": 75, "PracticalMarks": 75 }
  ]
});

কোয়েরি: TheoryMarks 78 নয় এমন ডকুমেন্ট খুঁজুন

> db.documentWithAParticularFieldValueDemo.find({
  'StudentDetails.TheoryMarks': { $nin: [78] }
}).pretty();

ফলাফল:

{
  "_id" : ObjectId("5c8edaf12f684a30fbdfd587"),
  "StudentId" : 102,
  "StudentDetails" : [
    { "TheoryMarks" : 91, "PracticalMarks" : 91 },
    { "TheoryMarks" : 75, "PracticalMarks" : 75 }
  ]
}

ব্যাখ্যা: প্রথম ডকুমেন্টে TheoryMarks: 78 আছে, তাই সেটি এক্সক্লুড হয়েছে। দ্বিতীয় ডকুমেন্টে ৭৮ নেই, তাই সেটি রিটার্ন হয়েছে।

টিপস: $nin ইনডেক্স ব্যবহার করতে পারে না যদি অ্যারে ফিল্ডে থাকে। বড় ডেটাসেটে পারফরম্যান্সের জন্য আলাদা ফিল্ড বা টেক্সট সার্চ বিবেচনা করুন।


  1. MongoDB-তে নির্দিষ্ট স্ট্রিং দিয়ে ডকুমেন্ট খুঁজে বের করা

  2. MongoDB-এ রেগুলার এক্সপ্রেশন দিয়ে ডকুমেন্ট খুঁজে বের করা

  3. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান অনুযায়ী ডকুমেন্ট ফিল্টার করা

  4. MongoDB-এ Regex দিয়ে "13" দিয়ে শুরু হওয়া ভ্যালু কাউন্ট করা