উত্তর:
হ্যাঁ, এটি সম্ভব 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
অনুসন্ধানগুলি সূচকগুলি ব্যবহার করতে পারে না (দেখুন মংগডবি.আর . / ডিসপ্লে / ডকস /… )।