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

MongoDB में केवल विशिष्ट मान प्राप्त करने के लिए क्वेरी

MongoDB में distinct() के साथ अद्वितीय मान प्राप्त करना

विशिष्ट मान प्राप्त करने के लिए MongoDB में distinct() का उपयोग करें। यह एकल कलेक्शन या व्यू में निर्दिष्ट फील्ड के लिए विशिष्ट मान ढूंढता है और परिणामों को ऐरे में लौटाता है।

कलेक्शन बनाना

> db.demo287.insertOne({"details":{"AllVowels":["a","u","u","o","e","a","o","i"]}});
{ "acknowledged": true, "insertedId": ObjectId("5e4c014cf49383b52759cbbd") }

डॉक्यूमेंट देखना

> db.demo287.find().pretty();

विशिष्ट मान क्वेरी

> db.demo287.distinct("details.AllVowels");

परिणाम


व्याख्या

  • distinct("details.AllVowels"): डॉट नोटेशन का उपयोग करके नेस्टेड फील्ड के विशिष्ट मान
  • डुप्लिकेट स्वचालित रूप से हटा दिए जाते हैं (a, u, o दो-दो बार)
  • परिणाम वर्णमाला क्रम में सॉर्टेड ऐरे: ["a", "e", "i", "o", "u"]
  • केवल एक डॉक्यूमेंट है, लेकिन ऐरे में 8 तत्व हैं जिनमें 5 अद्वितीय हैं

अतिरिक्त उपयोग

प्रदर्शन

  • फील्ड पर इंडेक्स होने पर तेज होता है
  • परिणाम 16MB तक सीमित (अधिकतम BSON डॉक्यूमेंट आकार)
  • बड़े परिणाम सेट के लिए एग्रीगेशन ($group) का उपयोग करें
  1. - MongoDB एग्रीगेशन में ऐरे से केवल मान प्राप्त करना

    MongoDB में $map का उपयोग करके ऑब्जेक्ट्स के ऐरे से केवल मान निकालना MongoDB एग्रीगेशन में $map ऑपरेटर का उपयोग करके ऑब्जेक्ट्स के ऐरे को ट्रांसफॉर्म करें और केवल वांछित फील्ड्स के मानों का ऐरे बनाएं। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo411.insertOne( { Information : [ { Name1

  1. - MongoDB में विशिष्ट तत्वों के लिए अधिकतम मान कैसे प्राप्त करें?

    विशिष्ट तत्वों के लिए अधिकतम मान प्राप्त करने के लिए MongoDB aggregate() में $sort और $group का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo750.insertOne({id:101,value:50}); { acknowledged : true, insertedId : ObjectId(5eae74b2a930c785c834e566) } > db.demo750.insertOne({id:102,value:40});

  1. - MySQL में GROUP BY का उपयोग करके अद्वितीय मान प्राप्त करना और उनकी गणना करना

    समाधान: GROUP BY के साथ COUNT(*) किसी कॉलम के अद्वितीय मान प्राप्त करने और प्रत्येक की घटनाओं की गणना करने के लिए GROUP BY क्लॉज का उपयोग करें। सिंटैक्स SELECT yourColumnName, COUNT(*) AS anyAliasName FROM yourTableName GROUP BY yourColumnName; व्यावहारिक उदाहरण टेबल बनाना और डेटा डालना (Sam), (S