মঙ্গোডিবির সাথে সেই ক্ষেত্রটি বিদ্যমান রয়েছে তা পরীক্ষা করুন


131

সুতরাং আমি সমস্ত রেকর্ডের সন্ধান করার চেষ্টা করছি যার মাঠ সেট রয়েছে এবং তা শূন্য নয়।

আমি চেষ্টা করার চেষ্টা করি $exists, তবে মঙ্গোডিবি ডকুমেন্টেশন অনুসারে , এই কোয়েরিটি সমান শূন্যস্থানগুলি ফেরত দেবে।

$exists এমন নথির সাথে মেলে যা নাল মান সঞ্চয় করে field

সুতরাং আমি এখন ধরে নিচ্ছি যে আমাকে এরকম কিছু করতে হবে:

db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })

আমি যখনই এটি চেষ্টা করি, তবুও ত্রুটিটি পেয়েছি কারও [invalid use of $not] কাছে কীভাবে এটির জন্য জিজ্ঞাসা করা উচিত তার একটি ধারণা আছে?

উত্তর:


184

ব্যবহার করুন $ne("সমান নয়" এর জন্য)

db.collection.find({ "fieldToCheck": { $exists: true, $ne: null } })

এই কি ফিরে আসে? একটি নাল সংগ্রহ? একক আইটেম? একটি অ্যারের?
অলিভার ডিকসন

4
@ iLoveUnicorns: যা findসর্বদা ফিরে আসে: মানদণ্ডের সাথে মিল রেখে রেকর্ডের সংগ্রহ।
সেরজিও টুলেন্টেসেভ

2
@ সেরজিওটুলেটসেভ আফাইক এটি একটি কার্সার ফিরিয়ে দিয়েছে
ফার্নান্দোহুর

@ ফার্নান্দোহুর: হ্যাঁ, তবে আপনার যদি ডকুমেন্টের এক পৃষ্ঠারও কম থাকে, আপনি এমনকি তারতম্যটি দেখতে পাবেন না। এবং যদি আপনি এই ক্যোয়ারীটি বাহ্যিক ড্রাইভার থেকে চালাতে চান তবে আমি নিশ্চিত যে তাদের বেশিরভাগই কার্সার বাস্তবায়ন বিশদ থেকে আপনাকে রক্ষা করে।
সেরজিও টুলেন্টেসেভ

24

ধরা যাক আমাদের নীচের মতো সংগ্রহ রয়েছে:

{ 
  "_id":"1234"
  "open":"Yes"
  "things":{
             "paper":1234
             "bottle":"Available"
             "bottle_count":40
            } 
}

আমরা জানতে চাই বোতলের ক্ষেত্র উপস্থিত কিনা?

উত্তর:

db.products.find({"things.bottle":{"$exists":true}})

2
When <boolean> is true, $exists matches the documents that contain the field, including documents where the field value is null. ডক্স থেকে
AlbertEngelB

1
হ্যাঁ, তবে আমি দেখতে পাচ্ছি না কেন কোনও ডিবি মান নালায় রাখবে, এটি
আস্তে আস্তে

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