MongoDB एग्रीगेशन में $concat का उपयोग करके फील्ड्स कंसीनिटेट करना
$concat एग्रीगेशन ऑपरेटर मल्टीपल स्ट्रिंग एक्सप्रेशन्स को एक ही स्ट्रिंग में जोड़ता है। यह $project के भीतर नए गणना किए गए फील्ड्स बनाने के लिए उपयोगी है।
नमूना डेटा बनाना
> db.concatenateFieldsDemo.insertOne({"StudentFirstName":"Adam","StudentLastName":"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6ebf46d78f205348bc62e") }
> db.concatenateFieldsDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6ebfc6d78f205348bc62f") }
> db.concatenateFieldsDemo.insertOne({"StudentFirstName":"David","StudentLastName":"Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6ec376d78f205348bc630") }
> db.concatenateFieldsDemo.insertOne({"StudentFirstName":"Sam","StudentLastName":"Williams"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6ec436d78f205348bc631") }
सभी डॉक्यूमेंट्स देखना
> db.concatenateFieldsDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cd6ebf46d78f205348bc62e"), "StudentFirstName" : "Adam", "StudentLastName" : "Smith" }
{ "_id" : ObjectId("5cd6ebfc6d78f205348bc62f"), "StudentFirstName" : "John", "StudentLastName" : "Doe" }
{ "_id" : ObjectId("5cd6ec376d78f205348bc630"), "StudentFirstName" : "David", "StudentLastName" : "Miller" }
{ "_id" : ObjectId("5cd6ec436d78f205348bc631"), "StudentFirstName" : "Sam", "StudentLastName" : "Williams" }
फुल नेम के लिए फील्ड्स कंसीनिटेट करना
> db.concatenateFieldsDemo.aggregate([
{
$project: {
"StudentFullName": {
$concat: ["$StudentFirstName", "/", "$StudentLastName"]
},
"StudentFirstName": 1,
"StudentLastName": 1
}
}
]);
आउटपुट:
{ "_id" : ObjectId("5cd6ebf46d78f205348bc62e"), "StudentFirstName" : "Adam", "StudentLastName" : "Smith", "StudentFullName" : "Adam/Smith" }
{ "_id" : ObjectId("5cd6ebfc6d78f205348bc62f"), "StudentFirstName" : "John", "StudentLastName" : "Doe", "StudentFullName" : "John/Doe" }
{ "_id" : ObjectId("5cd6ec376d78f205348bc630"), "StudentFirstName" : "David", "StudentLastName" : "Miller", "StudentFullName" : "David/Miller" }
{ "_id" : ObjectId("5cd6ec436d78f205348bc631"), "StudentFirstName" : "Sam", "StudentLastName" : "Williams", "StudentFullName" : "Sam/Williams" }
व्याख्या
$concat: [expr1, expr2, ...]- आर्ग्युमेंट्स के क्रम में स्ट्रिंग्स को जोड़ता है।"$StudentFirstName"- फील्ड रेफरेंस सिंटैक्स (प्रीफिक्स $)।"/"- लिटरल स्ट्रिंग सेपरेटर।StudentFirstName: 1, StudentLastName: 1- मूल फील्ड्स को आउटपुट में बनाए रखता है।
संबंधित स्ट्रिंग ऑपरेटर्स
| ऑपरेटर | उद्देश्य |
|---|---|
$concat | स्ट्रिंग्स जोड़ें |
$substr/$substrBytes/$substrCP | सबस्ट्रिंग निकालें |
$toLower/$toUpper | केस परिवर्तित करें |
$trim, $ltrim, $rtrim | व्हाइटस्पेस ट्रिम करें (MongoDB 4.0+) |
$split | डिलीमीटर द्वारा स्ट्रिंग विभाजित करें |
नल/अनुपस्थित फील्ड्स का संचालन
यदि कोई फील्ड null या अनुपस्थित है, तो $concat एक त्रुटि फेंकता है। सुरक्षित रूप से संभालने के लिए $ifNull का उपयोग करें:
{ $concat: [ { $ifNull: ["$firstName", ""] }, " ", { $ifNull: ["$lastName", ""] } ] }