$nin ऑपरेटर से ऐरे में विशिष्ट मान न रखने वाले डॉक्यूमेंट्स ढूंढें
$nin (not in) ऑपरेटर उन डॉक्यूमेंट्स को चुनता है जहां ऐरे फ़ील्ड का कोई भी एलिमेंट निर्दिष्ट मानों में से किसी से मेल नहीं खाता।
उदाहरण: संग्रह बनाना
> db.demo180.insertOne({"Scores": ["80", "90", "110"]});
{ "acknowledged": true, "insertedId": ObjectId("5e3988a69e4f06af551997fb") }
> db.demo180.insertOne({"Scores": ["110", "70", "60"]});
{ "acknowledged": true, "insertedId": ObjectId("5e3988b79e4f06af551997fc") }
> db.demo180.insertOne({"Scores": ["40", "70", "1010"]});
{ "acknowledged": true, "insertedId": ObjectId("5e3988cc9e4f06af551997fd") }
सभी डॉक्यूमेंट्स देखना
> db.demo180.find();
{ "_id": ObjectId("5e3988a69e4f06af551997fb"), "Scores": ["80", "90", "110"] }
{ "_id": ObjectId("5e3988b79e4f06af551997fc"), "Scores": ["110", "70", "60"] }
{ "_id": ObjectId("5e3988cc9e4f06af551997fd"), "Scores": ["40", "70", "1010"] }
$nin से मैच करने की क्वेरी
जिन डॉक्यूमेंट्स के Scores ऐरे में "110" और "90" दोनों नहीं हैं:
> db.demo180.aggregate({
"$match": {
"Scores": { "$nin": ["110", "90"] }
}
}).pretty();
आउटपुट:
{ "_id": ObjectId("5e3988cc9e4f06af551997fd"), "Scores": ["40", "70", "1010"] }
केवल तीसरा डॉक्यूमेंट मेल खाता है क्योंकि उसके ऐरे में न "110" है न "90"।
नोट:
$ninऐरे फ़ील्ड पर काम करता है; यदि फ़ील्ड ऐरे नहीं है तो यह उस फ़ील्ड की वैल्यू को सिंगल-एलिमेंट ऐरे मानता है।