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

MongoDB में विशिष्ट फील्ड वाले सभी कलेक्शन्स कैसे खोजें?

MongoDB में सभी कलेक्शन्स में विशिष्ट फील्ड खोजना

MongoDB में किसी विशिष्ट फील्ड नेम वाले सभी कलेक्शन्स खोजने के लिए getCollectionNames() के साथ लूप और $exists का उपयोग करें।

क्वेरी: "StudentFirstName" फील्ड वाले कलेक्शन्स खोजना

> db.getCollectionNames().forEach(function(myCollectionName) {
...   var frequency = db[myCollectionName].find({"StudentFirstName": {$exists: true}}).count();
...   if (frequency > 0) {
...     print(myCollectionName);
...   }
... });

आउटपुट:

multiDimensionalArrayProjection
removeKeyFieldsDemo
stringOrIntegerQueryDemo

वेरिफिकेशन: removeKeyFieldsDemo में StudentFirstName चेक करना

> db.removeKeyFieldsDemo.find({"StudentFirstName":{$exists:true}});

आउटपुट:

{ "_id" : ObjectId("5cc6c8289cb58ca2b005e672"), "StudentFirstName" : "John", "StudentLastName" : "Doe" }
{ "_id" : ObjectId("5cc6c8359cb58ca2b005e673"), "StudentFirstName" : "John", "StudentLastName" : "Smith" }

व्याख्या:

  1. db.getCollectionNames() - सभी कलेक्शन नेम्स की ऐरे लौटाता है
  2. forEach() - प्रत्येक कलेक्शन पर लूप चलाता है
  3. db[myCollectionName] - डायनामिक कलेक्शन एक्सेस (ब्रैकेट नोटेशन)
  4. find({field: {$exists: true}}).count() - फील्ड वाले डॉक्यूमेंट्स गिनता है
  5. frequency > 0 - कम से कम एक डॉक्यूमेंट में फील्ड हो

नोट: यह सभी कलेक्शन्स स्कैन करता है, बड़े डेटाबेस में धीमा हो सकता है। प्रोडक्शन में सावधानी से उपयोग करें।

बेहतर विकल्प (MongoDB 3.0+): db.getCollectionInfos() या सिस्टम कलेक्शन्स से मेटाडेटा क्वेरी करें।

  1. - MongoDB Aggregation - Specific Field Value वाले Documents Fetch करना

    इसके लिए aggregate() का उपयोग करें। मान लें हमें field Age value 21 वाले documents fetch करने हैं। Collection बनाना > db.demo685.insertOne( ... { ... details: ... [ ... { Name:Chris, Age:21 }, ... { Name:David, Age:23 }, ... { Name:Bob, Age:21 } ... ] ... } ...

  1. - MongoDB Query - Specific FirstName और LastName वाले Documents Find करना

    Specific FirstName और LastName वाले documents find करने के लिए $and के साथ $in का उपयोग करें। MongoDB find() में implement करें। Collection बनाना > db.demo692.insertOne({FirstName:Chris,LastName:Brown}); { acknowledged : true, insertedId : ObjectId(5ea585dca7e81adc6a0b396a) } > db.demo692.ins

  1. - MongoDB में किसी फ़ील्ड के सभी मानों को विशिष्ट स्ट्रिंग से अपडेट करना

    कलेक्शन के सभी दस्तावेज़ों में किसी फ़ील्ड का मान बदलने के लिए update() के साथ multi: true (या नए वर्जन में updateMany()) का उपयोग करें। डेमो डेटा > db.demo720.insertOne({SubjectName:MySQL}); > db.demo720.insertOne({SubjectName:Java}); > db.demo720.insertOne({SubjectName:C}); > db.demo7