মঙ্গোডিবি: ক্ষেত্রটি শূন্য বা সেট না করা রেকর্ডগুলির জন্য কীভাবে জিজ্ঞাসা করবেন?


106

আমার একটি Emailডকুমেন্ট আছে যার একটি sent_atতারিখের ক্ষেত্র রয়েছে:

{
  'sent_at': Date( 1336776254000 )
}

এটি যদি Emailনা পাঠানো sent_atহয় তবে ক্ষেত্রটি শূন্য হয়, বা অ-অস্তিত্বশীল।

আমার কাছে প্রেরিত / না পাঠানো সমস্তের গণনা করা দরকার Emails। আমি এই তথ্যের জন্য ক্যোয়ারী সঠিক উপায় বের করার চেষ্টা করতে আটকে আছি। আমি মনে করি প্রেরিত গণনা পাওয়ার এটিই সঠিক উপায়:

db.emails.count({sent_at: {$ne: null}})

তবে যে পাঠানো হয়নি তার গণনা আমি কীভাবে করব?

উত্তর:



16

যদি আপনি কেবলমাত্র sent_atএকটি মান দিয়ে সংজ্ঞায়িত দলিলগুলি গণনা করতে চান null( sent_atসেট না করে নথিগুলি গণনা করবেন না ):

db.emails.count({sent_at: { $type: 10 }})

ধন্যবাদ. ক্ষেত্রের উপস্থিতি আছে কিনা তা পরীক্ষা করার সময় নালায় সেট করা এটি খুব দরকারী।
jstice4 সমস্ত

আপভোটেড কারণ findপ্লেইন দিয়ে ব্যবহার করার সময় nullএটি 0.0যেমন মূল্যবোধগুলির ব্যাখ্যা করে nullএবং এই সমাধান এটি এড়ায়
ম্যাথিয়াস হার্ম্যান

12

ব্যবহার করুন:

db.emails.count({sent_at: null})

যাঁদের প্রেরিত_আর সম্পত্তি বাতিল বা সেট না করা সমস্ত ইমেল গণনা করে। উপরের প্রশ্নটি নীচের মতই same

db.emails.count($or: [
  {sent_at: {$exists: false}},
  {sent_at: null}
])


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.