উত্তর:
হ্যাঁ, এটি সম্ভব using বিদ্যমান ব্যবহার করে সম্ভব :
db.things.find( { a : { $exists : false } } ); // return if a is missing
যখন সত্য হয়, $ বিদ্যমান ক্ষেত্রটি সহ নথির সাথে মেলে যেখানে ক্ষেত্রের মানটি শূন্য থাকে documents যদি মিথ্যা হয় তবে ক্যোয়ারী কেবলমাত্র সেই দস্তাবেজগুলি ফেরত পাঠায় যা ক্ষেত্রটি ধারণ করে না।
scope :without_recommendation, :where => {:recommendation => {"$exists"=>false}}
যদি ক্ষেত্রটি অনুপস্থিত বা null(বা এটি কখনও না হয় null) আপনার যদি যত্ন না থাকে তবে আপনি সামান্য খাটো এবং নিরাপদটি ব্যবহার করতে পারেন :
db.things.find( { a : null } ); // return if a is missing or null
এটি নিরাপদ কারণ ক্ষেত্রটি শূন্য থাকলেও $existsফিরে আসবে true, যা প্রায়শই পছন্দসই ফলাফল নয় এবং এনপিইতে ডেকে আনতে পারে।
nullএবং অনুপস্থিত নয় বলে এটি ব্যাখ্যা করতে পারে । এটি আসলে অপ্রত্যাশিত আচরণ, কারণ আপনি 0(যা এটিও false) এর জন্য একই কাজ করতে সক্ষম হবেন না , তাই nullএখানেও ব্যতিক্রম। অতএব, সর্বোত্তম অনুশীলনটি হ'ল আরও পড়ার যোগ্য উত্তরগুলি ব্যবহার করে $exists: falseযা অস্পষ্ট নয়। মনে রাখবেন, আপনার সামান্য সংক্ষিপ্ত রূপটি আসলে খাটো নয় তবে যদি এর পিছনে আপনার মন্তব্য থাকতে হয়!
a, হয় aহয় nullবা কারণ aএটি অনুপস্থিত থাকে, তবে $existsএটি যথেষ্ট ভাল নয়, কারণ এটি যেখানে aরয়েছে সেখানে ধরা পড়বে না null।
$existঅনুসন্ধানগুলি সূচকগুলি ব্যবহার করতে পারে না (দেখুন মংগডবি.আর . / ডিসপ্লে / ডকস /… )।