MongoDB में स्ट्रिंग के पहले शब्द के विशिष्ट मान प्राप्त करना
स्ट्रिंग में पहले शब्द के विशिष्ट मान प्राप्त करने के लिए split() का उपयोग करें।
कलेक्शन बनाना
> db.demo129.insertOne({"Words":"This is the MySQL","CountryName":"US"});
{ "acknowledged": true, "insertedId": ObjectId("5e305d6368e7f832db1a7f6b") }
> db.demo129.insertOne({"Words":"MongoDB is NOSQL database","CountryName":"US"});
{ "acknowledged": true, "insertedId": ObjectId("5e305d7b68e7f832db1a7f6c") }
सभी डॉक्यूमेंट्स
> db.demo129.find();
{ "_id": ObjectId("5e305d6368e7f832db1a7f6b"), "Words": "This is the MySQL", "CountryName": "US" }
{ "_id": ObjectId("5e305d7b68e7f832db1a7f6c"), "Words": "MongoDB is NOSQL database", "CountryName": "US" }
पहले शब्द के विशिष्ट मान प्राप्त करने की क्वेरी
> w = db.demo129.distinct("Words", {"CountryName": "US"}).map(function(doc){ return doc.split(" ")[0]; });
[ "This", "MongoDB" ]
परिणाम देखना
> printjson(w);
[ "This", "MongoDB" ]
व्याख्या
- distinct("Words", {"CountryName": "US"}): US देश के सभी अद्वितीय Words मान लौटाता है
- .map(function(doc){ return doc.split(" ")[0]; }): प्रत्येक स्ट्रिंग को स्पेस से विभाजित करके पहला शब्द लेता है
- "This is the MySQL" → ["This", "is", "the", "MySQL"] → "This"
- "MongoDB is NOSQL database" → ["MongoDB", "is", "NOSQL", "database"] → "MongoDB"
- परिणाम: ["This", "MongoDB"]
नोट
यह दृष्टिकोण क्लाइंट-साइड प्रोसेसिंग (मैप फंक्शन) का उपयोग करता है। सर्वर-साइड प्रोसेसिंग के लिए MongoDB 4.4+ में $split और $arrayElemAt के साथ एग्रीगेशन पाइपलाइन का उपयोग करें।