MongoDB-এ নেস্টেড অবজেক্ট বা ডকুমেন্টে নির্দিষ্ট ফিল্ড উপস্থিত আছে কিনা তা যাচাই করতে $exists অপারেটর সহ ডট নোটেশন ব্যবহার করুন।
উদাহরণ
বিভিন্ন স্ট্রাকচারের নেস্টেড অবজেক্ট সহ ডকুমেন্ট তৈরি করুন:
> db.findDocumentContainsSpecificFieldDemo.insertOne({"ProductPrices": {"Product1": 10, "Product2": 50}});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf2385bb64a577be5a2bc14") }
> db.findDocumentContainsSpecificFieldDemo.insertOne({"ProductPrices": {"Product3": 150, "Product7": 100, "Product5": 250}});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf2387eb64a577be5a2bc15") }
সকল ডকুমেন্ট দেখুন:
> db.findDocumentContainsSpecificFieldDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cf2385bb64a577be5a2bc14"), "ProductPrices" : { "Product1" : 10, "Product2" : 50 } }
{ "_id" : ObjectId("5cf2387eb64a577be5a2bc15"), "ProductPrices" : { "Product3" : 150, "Product7" : 100, "Product5" : 250 } }
ProductPrices অবজেক্টে Product2 ফিল্ড থাকা ডকুমেন্ট বের করা
> db.findDocumentContainsSpecificFieldDemo.find({ "ProductPrices.Product2": { $exists: true } });
আউটপুট:
{ "_id" : ObjectId("5cf2385bb64a577be5a2bc14"), "ProductPrices" : { "Product1" : 10, "Product2" : 50 } }
ব্যাখ্যা:
ProductPrices.Product2— ডট নোটেশন ব্যবহার করে নেস্টেড ফিল্ড রেফার করা হয়েছে।$exists: true— ফিল্ডটি উপস্থিত থাকা ডকুমেন্ট ফিল্টার করে।- দ্বিতীয় ডকুমেন্টে
Product2নেই, তাই বাদ পড়েছে।
বিকল্প: শুধু ফিল্ডের মান খুঁজলে { "ProductPrices.Product2": 50 } ব্যবহার করুন। $exists শুধু উপস্থিতি চেক করে।