MongoDB में $all ऑपरेटर: सरणी में सभी तत्वों का मिलान
$all ऑपरेटर उन डॉक्यूमेंट्स को चुनता है जहां किसी सरणी फ़ील्ड का मान निर्दिष्ट सरणी में सभी तत्वों को समाहित करता है। क्रम कोई मायने नहीं रखता, लेकिन सभी निर्दिष्ट मान मौजूद होने चाहिए।
नमूना डेटा बनाना
हम demo17 संग्रह में विषयों की सरणी वाले तीन डॉक्यूमेंट्स डालते हैं।
> db.demo17.insertOne({"ListOfSubject": ["MySQL", "MongoDB", "Java"]});
{ "acknowledged": true, "insertedId": ObjectId("5e13847255d0fc6657d21f0a") }
> db.demo17.insertOne({"ListOfSubject": ["C", "Python", "Java"]});
{ "acknowledged": true, "insertedId": ObjectId("5e13847e55d0fc6657d21f0b") }
> db.demo17.insertOne({"ListOfSubject": ["C++", "MongoDB", "PL/SQL"]});
{ "acknowledged": true, "insertedId": ObjectId("5e13849255d0fc6657d21f0c") }
क्वेरी: सभी तीन विषयों वाले डॉक्यूमेंट्स ढूंढें
हम उन डॉक्यूमेंट्स को ढूंढना चाहते हैं जिनमें "C++", "PL/SQL", और "MongoDB" — सभी तीन मौजूद हों।
> db.demo17.find({ "ListOfSubject": { "$all": ["C++", "PL/SQL", "MongoDB"] } });
परिणाम
{ "_id": ObjectId("5e13849255d0fc6657d21f0c"), "ListOfSubject": [ "C++", "MongoDB", "PL/SQL" ] }
केवल तीसरा डॉक्यूमेंट वापस किया गया क्योंकि वही एकमात्र डॉक्यूमेंट है जिसमें तीनों निर्दिष्ट विषय हैं। पहला डॉक्यूमेंट "C++" और "PL/SQL" नहीं रखता, दूसरा "C++" और "PL/SQL" नहीं रखता।