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

MongoDB में एक एट्रिब्यूट का मान दूसरे एट्रिब्यूट में कॉपी करना

MongoDB में $set और update() का उपयोग करके फील्ड मान कॉपी करना

MongoDB में किसी फील्ड का मान दूसरे फील्ड में कॉपी करने के लिए forEach() लूप के साथ $set और update() का उपयोग करें।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo55.insertOne({"ShippingDate":"","date":new ISODate("2019-01-21")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2716dfcfb11e5c34d89915") }
> db.demo55.insertOne({"ShippingDate":"","date":new ISODate("2020-05-12")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2716ebcfb11e5c34d89916") }

दस्तावेज़ देखना (अपडेट से पहले)

> db.demo55.find();

आउटपुट:

{ "_id" : ObjectId("5e2716dfcfb11e5c34d89915"), "ShippingDate" : "", "date" : ISODate("2019-01-21T00:00:00Z") }
{ "_id" : ObjectId("5e2716ebcfb11e5c34d89916"), "ShippingDate" : "", "date" : ISODate("2020-05-12T00:00:00Z") }

फील्ड मान कॉपी करने के लिए क्वेरी

> db.demo55.find({}).forEach(function(c){
  db.demo55.update({_id: c._id}, {$set: {ShippingDate:c.date}});
});

अपडेट के बाद दस्तावेज़ देखना

> db.demo55.find();

आउटपुट:

{ "_id" : ObjectId("5e2716dfcfb11e5c34d89915"), "ShippingDate" : ISODate("2019-01-21T00:00:00Z"), "date" : ISODate("2019-01-21T00:00:00Z") }
{ "_id" : ObjectId("5e2716ebcfb11e5c34d89916"), "ShippingDate" : ISODate("2020-05-12T00:00:00Z"), "date" : ISODate("2020-05-12T00:00:00Z") }

आधुनिक और कुशल विकल्प (MongoDB 4.2+):

एग्रीगेशन पाइपलाइन के साथ updateMany() का उपयोग करें - यह एटॉमिक है और तेज़ है:

db.demo55.updateMany(
  {},
  [{ $set: { ShippingDate: "$date" } }]
)

लाभ:

  • सिंगल ऑपरेशन (एटॉमिक)
  • क्लाइंट-साइड लूप की आवश्यकता नहीं
  • बड़े संग्रह के लिए बेहतर प्रदर्शन
  • शार्डेड क्लस्टर पर काम करता है

नोट: एग्रीगेशन पाइपलाइन अपडेट में $set फील्ड रेफरेंस "$fieldName" सिंटैक्स का उपयोग करता है।

  1. - MongoDB में कलेक्शन कैसे ड्रॉप करें?

    MongoDB में कलेक्शन ड्रॉप करने के लिए, आपको drop() कमांड का उपयोग करना होगा। सिंटैक्स इस प्रकार है: db.yourCollectionName.drop(); उपरोक्त सिंटैक्स true या false लौटाता है। यदि कलेक्शन सफलतापूर्वक ड्रॉप हो जाता है तो यह true लौटाता है अन्यथा false। आइए पहले MongoDB से सभी कलेक्शन नाम प्रदर्शित करें।

  1. - MongoDB में एक डेटाबेस से दूसरे में कलेक्शन कैसे कॉपी करें

    MongoDB में एक डेटाबेस से दूसरे में कलेक्शन कॉपी करने के लिए डायरेक्ट कमांड नहीं है। forEach() और getSiblingDB() का उपयोग करके इसे प्राप्त करें। सिंटैक्स db.yourCollectionName.find().forEach(function(yourVariableName) { db.getSiblingDB(yourDestinationDatabase)[yourCollectionName].insert(yourVariab

  1. MongoDB में कंसोल कैसे क्लियर करें? MongoDB में कंसोल कैसे क्लियर करें?

    MongoDB में कंसोल क्लियर करने के लिए, आप निम्न दो सिंटैक्स में से किसी का उपयोग कर सकते हैं। पहला सिंटैक्स कीबोर्ड शॉर्टकट का उपयोग है: Ctrl + L उपरोक्त कुंजी दबाने के बाद, आप MongoDB में कंसोल क्लियर कर सकते हैं। दूसरा सिंटैक्स इस प्रकार है: cls उपरोक्त सिंटैक्स को समझने के लिए, आइए उन्हें एक-एक क