$or ऑपरेटर के साथ सशर्त क्वेरी
किसी फील्ड पर शर्त **केवल तभी** लागू करने के लिए जब वह फील्ड दस्तावेज़ में मौजूद हो, $or ऑपरेटर का उपयोग करें: एक शर्त फील्ड की अनुपस्थिति की जांच करती है ($exists: false), दूसरी शर्त वांछित मान की जांच करती है।
उदाहरण: डेटा डालना (एक दस्तावेज़ में StudentAge गायब है)
> db.applyConditionDemo.insertOne({"StudentName":"Larry","StudentAge":21,"StudentMarks":45});
...
> db.applyConditionDemo.insertOne({"StudentName":"Robert","StudentMarks":98}); // StudentAge गायब
...
सभी दस्तावेज़ देखना
> db.applyConditionDemo.find().pretty();
आउटपुट (Robert के पास StudentAge नहीं है):
{ "_id" : ..., "StudentName" : "Larry", "StudentAge" : 21, "StudentMarks" : 45 }
{ "_id" : ..., "StudentName" : "Sam", "StudentAge" : 23, "StudentMarks" : 55 }
{ "__id" : ..., "StudentName" : "David", "StudentAge" : 21, "StudentMarks" : 65 }
{ "_id" : ..., "StudentName" : "Carol", "StudentAge" : 24, "StudentMarks" : 78 }
{ "_id" : ..., "StudentName" : "Chris", "StudentAge" : 21, "StudentMarks" : 88 }
{ "_id" : ..., "StudentName" : "Robert", "StudentMarks" : 98 }
क्वेरी: StudentAge 21 है **या** StudentAge मौजूद नहीं है
> db.applyConditionDemo.find({ $or: [ { StudentAge: { $exists:false } }, { StudentAge:21 } ]}).pretty();
आउटपुट (Robert शामिल है क्योंकि StudentAge गायब है, साथ ही वे जिनकी आयु 21 है):
व्याख्या:
$orसरणी की पहली शर्त{ StudentAge: { $exists: false } }उन दस्तावेज़ों से मेल खाती है जहां फील्ड अनुपस्थित है। दूसरी शर्त{ StudentAge: 21 }उन दस्तावेज़ों से मेल खाती है जहां फील्ड मौजूद है और मान 21 है।