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

MongoDB एग्रीगेशन में स्ट्रिंग विभाजित करें

MongoDB में mapReduce का उपयोग करके स्ट्रिंग विभाजित करना

MongoDB में स्ट्रिंग को विभाजित करने के लिए mapReduce() का उपयोग किया जा सकता है, हालांकि आधुनिक वर्जन में एग्रीगेशन ऑपरेटर्स ($split, $arrayElemAt) अधिक कुशल हैं।

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

> db.splitString.insertOne({"StudentName":"John Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e0849d925ddae1f53b62206") }

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

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

आउटपुट:


mapReduce के साथ स्ट्रिंग विभाजित करना (लास्ट नेम निकालना)

> db.splitString.mapReduce(
    function() {
        var StudentLastName = this.StudentName.split(/\s/).reverse()[0].toUpperCase();
        emit({ "StudentLastName": StudentLastName, "FirstObjectId": this._id }, this);
    },
    function(){},
    { "out": { "inline": 1 } }
);

आउटपुट:


आधुनिक विकल्प: एग्रीगेशन में $split (MongoDB 3.4+)

आउटपुट: { "_id" : ..., "StudentName" : "John Smith", "LastName" : "SMITH" }

mapReduce vs एग्रीगेशन

पहलूmapReduceएग्रीगेशन
परफॉर्मेंसधीमा (JS इंजन)तेज (नेटिव C++)
लचीलापनउच्च (पूर्ण JS)मध्यम (ऑपरेटर्स)
शार्डिंगसीमितपूर्ण समर्थन
अनुशंसितजटिल लॉजिक के लिएअधिकांश मामलों के लिए

अन्य स्ट्रिंग ऑपरेटर्स (एग्रीगेशन)

  • $split: विभाजक द्वारा स्ट्रिंग विभाजित करें
  • $substr/$substrBytes/$substrCP: सबस्ट्रिंग निकालें
  • $concat: स्ट्रिंग्स जोड़ें
  • $regexFind/$regexFindAll: रेगुलर एक्सप्रेशन मिलान
  • $replaceOne/$replaceAll: स्ट्रिंग प्रतिस्थापन

नोट

उदाहरण में mapReduce का उपयोग किया गया है जो विरासत दृष्टिकोण है। नए विकास के लिए एग्रीगेशन पाइपलाइन पसंद करें।

  1. - MongoDB Aggregate में $redact का उपयोग करना

    $redact documents के contents को documents themselves में stored information के आधार पर restrict करता है। Aggregate में $cond के साथ $redact का उपयोग कर सकते हैं। Collection बनाना > db.demo546.insertOne({Value1:10,Value2:20}); { acknowledged : true, insertedId : ObjectId(5e8e263f9e5f92834d7f05d7

  1. - MongoDB Aggregate एकाधिक परिणाम ग्रुप करें?

    एकाधिक परिणाम एग्रीगेट करने के लिए MongoDB में $group का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo765.insertOne( { Name:John, Category:ComputerScience, SubjectName:MongoDB, Marks:75 } ); { acknowledged : true, insertedId : ObjectId(5eb054525637cd592b2a4b01) } > db.demo765.insertOne( { N

  1. - पायथन में स्ट्रिंग को N आकार के टुकड़ों में विभाजित करना

    समस्या विवरण एक स्ट्रिंग s और पूर्णांक n दिया गया है, हमें s को n-आकार के टुकड़ों में विभाजित करना है। उदाहरण इनपुट: s = abcdefghijklmn, n = 4 आउटपुट: [abcd, efgh, ijkl, mn] एल्गोरिदम i = 0, खाली सूची f = [] जब तक i < len(s): f.append(s[i:i+n]) i += n f वापस करें पायथन कार्यान्वयन cl