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

MongoDB-এ ফিল্ড খালি অ্যারে [] নাকি খালি অবজেক্ট {} চেক করা

MongoDB-এ কোনো ফিল্ড খালি অ্যারে ([]) নাকি খালি অবজেক্ট ({}) কিনা চেক করতে কোয়েরি অপারেটর কম্বাইন করা হয়।

চেক করার লজিক

  • {$gt: {}} — ফিল্ডটি খালি অবজেক্ট নয় (অবজেক্ট হলে কমপক্ষে একটি কি থাকবে)
  • {$exists: false} index 0 নেই — অর্থাৎ অ্যারে নয় (অথবা খালি অ্যারে)

দুটো মিলিয়ে: ফিল্ড অবজেক্ট হলে $gt: {} ট্রু, আর অ্যারে হলে 0 ইনডেক্স থাকে। তাই 0 ইনডেক্স না থাকা + অবজেক্ট বড় হলে = খালি অবজেক্ট নয় এবং অ্যারে নয় = সাধারণ অবজেক্ট।

নমুনা ডেটা তৈরি (বিভিন্ন টাইপ)

> db.checkFieldDemo.insert([
  { _id: 1010, StudentDetails: {} },
  { _id: 1011, StudentDetails: [ { StudentId: 1 } ] },
  { _id: 1012, StudentDetails: [ {} ] },
  { _id: 1013 },
  { _id: 1014, StudentDetails: null },
  { _id: 1015, StudentDetails: { StudentId: 1 } }
]);
BulkWriteResult({ "nInserted": 6, ... })

সব ডকুমেন্ট দেখুন

> db.checkFieldDemo.find().pretty();
আউটপুট:
{ "_id": 1010, "StudentDetails": { } }
{ "_id": 1011, "StudentDetails": [ { "StudentId": 1 } ] }
{ "_id": 1012, "StudentDetails": [ { } ] }
{ "_id": 1013 }
{ "_id": 1014, "StudentDetails": null }
{ "_id": 1015, "StudentDetails": { "StudentId": 1 } }

কোয়েরি: StudentDetails ফিল্ডটি খালি অবজেক্ট {} নয় এবং অ্যারে [] নয় (অর্থাৎ একটি নন-এমপটি অবজেক্ট)

> db.checkFieldDemo.find({
  "StudentDetails": { "$gt": {} },
  "StudentDetails.0": { "$exists": false }
});
আউটপুট (শুধু 1015 নম্বর):
{
  "_id": 1015,
  "StudentDetails": { "StudentId": 1 }
}

ব্যাখ্যা:

  • 1010: {} — $gt: {} ফেল (খালি অবজেক্ট)
  • 1011: অ্যারে — 0 ইনডেক্স একজিস্ট করে, তাই $exists: false ফেল
  • 1012: [{}] — অ্যারে, 0 ইনডেক্স আছে
  • 1013: ফিল্ড নেই
  • 1014: null — $gt: {} ফেল
  • 1015: {StudentId:1} — উভয় শর্ত পূরণ করে

  1. MongoDB-এ বুলিয়ান (Boolean) ফিল্ড ইনসার্ট করার পদ্ধতি

  2. MongoDB-তে প্রজেক্ট ফিল্ড ব্যবহার করা

  3. MongoDB-এ খালি ফিল্ড চেক করার পদ্ধতি

  4. MongoDB-তে find()-এ প্রজেকশন দিয়ে _id ফিল্ড হাইড করা