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

MongoDB में फील्ड्स को कैसे कंसीनिटेट करें?

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", ""] } ] }
  1. - MongoDB एग्रीगेशन में $reduce और $concat का उपयोग करके सरणी मानों को अन्य फ़ील्ड्स के साथ जोड़ना

    MongoDB में सरणी तत्वों को स्ट्रिंग में जोड़ना: $reduce + $concat सरणी के तत्वों को एकल स्ट्रिंग में जोड़ने और अन्य फ़ील्ड्स के साथ संयोजित करने के लिए, $project में $reduce (सरणी→स्ट्रिंग) और फिर $concat का उपयोग करें। नमूना डेटा > db.demo359.insertOne({ Name1: Chris, Name2: David, Subjects

  1. - MongoDB में शर्त के साथ कनकैटेनेशन कैसे करें?

    MongoDB में शर्त के साथ कनकैटेनेशन करने के लिए $cond का उपयोग करें और उसमें $concat के साथ काम करें। आइए एक कलेक्शन बनाते हैं: > db.demo745.insertOne({Value1:100,Value2:100}); { acknowledged : true, insertedId : ObjectId(5eae6419a930c785c834e554) } > db.demo745.insertOne({Value1:40,Value2:50}

  1. - MySQL में फ़ील्ड कैसे कॉनकैटनेट करें?

    MySQL में फ़ील्ड कॉनकैटनेट करने के लिए, आप GROUP BY के साथ GROUP_CONCAT() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable    (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentName varchar(30),    StudentScore