Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में ऐरे से आइटम न होने वाले दस्तावेज़ खोजें

MongoDB में ऐरे एलिमेंट्स के आधार पर दस्तावेज़ फ़िल्टर करना

जब आपको ऐसे दस्तावेज़ खोजने हों जहां ऐरे में कम से कम एक आइटम किसी अन्य सेट में मौजूद न हो, तो रेगुलर एक्सप्रेशन (regex) का उपयोग किया जा सकता है।

सैंपल डेटा बनाना

> db.demo228.insertOne({"Subjects":["MongoDB","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3fa51f03d395bdc213473b") }
> db.demo228.insertOne({"Subjects":["MongoDB","Java","MySQL"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3fa52c03d395bdc213473c") }

सभी दस्तावेज़ देखना

> db.demo228.find();

आउटपुट:

{ "_id" : ObjectId("5e3fa51f03d395bdc213473b"), "Subjects" : [ "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }

रेगुलर एक्सप्रेशन से क्वेरी

निम्न क्वेरी उन दस्तावेज़ों को खोजती है जहां Subjects ऐरे में "MongoDB" या "Java" के अलावा कोई मान हो:

> db.demo228.find({ "Subjects": /^(?!MongoDB|Java)/ });

आउटपुट:

{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }

बेहतर विकल्प: $nin ऑपरेटर

रेगुलर एक्सप्रेशन के बजाय MongoDB का $nin ऑपरेटर अधिक कुशल और पठनीय है:

> db.demo228.find({ "Subjects": { $nin: ["MongoDB", "Java"] } });

स्पष्टीकरण

  • ^(?!MongoDB|Java) - नेगेटिव लुकअहेड रेगुलर एक्सप्रेशन जो "MongoDB" या "Java" से शुरू न होने वाले स्ट्रिंग्स से मेल खाता है
  • $nin - निर्दिष्ट मानों में से कोई भी ऐरे में मौजूद न होने पर मिलान करता है
  • बड़े डेटासेट के लिए $nin इंडेक्स का बेहतर उपयोग करता है
  1. - MongoDB में Document से Array Value Delete करना

    Array values delete करने के लिए MongoDB में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना > db.demo535.insertOne( ... { ... studentId : 101, ... studentName : Chris, ... ListOfMailIds : [

  1. - MongoDB में Same Array Elements वाले Document Find करना

    Same array elements वाले document को find करने के लिए find() में $all का उपयोग करें। $all operator उन documents को select करता है जहां field का value एक array है जिसमें सभी specified elements मौजूद हैं। Collection बनाना > db.demo543.insertOne({id:101, subject:[MySQL, Java ,C,Python]}); { acknowl

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट में निश्चित तत्व कैसे ढूंढें?

    निश्चित तत्व ढूंढने के लिए MongoDB में $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo744.insertOne( { studentInformation: [ { studentName:Robert, grade:A }, { studentName:Bob, grade:C }, { studentName:John, grade:B }, { studentName:Sam, grade:A } ] } ); { acknowledged : true, insert