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

MongoDB में एक कॉलम का मान दूसरे कॉलम से सेट करना

MongoDB में forEach() का उपयोग करके एक फील्ड का मान दूसरे फील्ड से कॉपी करना

MongoDB में किसी मौजूदा फील्ड का मान दूसरे फील्ड में कॉपी करने के लिए forEach() लूप के साथ update() या save() का उपयोग किया जा सकता है।

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

> db.demo51.insert({"Name1":"Chris","Name":"David","Age":24});
WriteResult({ "nInserted" : 1 })
> db.demo51.insert({"Name1":"Carol","Name":"Mike","Age":22});
WriteResult({ "nInserted" : 1 })
> db.demo51.insert({"Name1":"Sam","Name":"Bob","Age":26});
WriteResult({ "nInserted" : 1 })

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

> db.demo51.find();

आउटपुट:

{ "_id" : ObjectId("5e27108ccfb11e5c34d8990d"), "Name1" : "Chris", "Name" : "David", "Age" : 24 }
{ "_id" : ObjectId("5e27108dcfb11e5c34d8990e"), "Name1" : "Carol", "Name" : "Mike", "Age" : 22 }
{ "_id" : ObjectId("5e27108ecfb11e5c34d8990f"), "Name1" : "Sam", "Name" : "Bob", "Age" : 26 }

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

> db.demo51.find().forEach( function (d) {
  d.Name1 = d.Name;
  db.demo51.save(d);
});

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

> db.demo51.find();

आउटपुट:

{ "_id" : ObjectId("5e27108ccfb11e5c34d8990d"), "Name1" : "David", "Name" : "David", "Age" : 24 }
{ "_id" : ObjectId("5e27108dcfb11e5c34d8990e"), "Name1" : "Mike", "Name" : "Mike", "Age" : 22 }
{ "_id" : ObjectId("5e27108ecfb11e5c34d8990f"), "Name1" : "Bob", "Name" : "Bob", "Age" : 26 }

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

एग्रीगेशन पाइपलाइन के साथ updateMany() का उपयोग करके अधिक कुशलता से:

db.demo51.updateMany(
  {},
  [{ $set: { Name1: "$Name" } }]
)

यह तरीका एटॉमिक है और बड़े संग्रह के लिए बेहतर प्रदर्शन देता है।

  1. - MySQL में दूसरी टेबल से कॉलम जोड़ना

    हाँ, आप ALTER TABLE और UPDATE ... JOIN का उपयोग करके दूसरी टेबल से डेटा लेकर एक नया कॉलम जोड़ सकते हैं। पहली टेबल बनाएँ: CREATE TABLE FirstTable ( UserId INT, UserName VARCHAR(20) ); दूसरी टेबल बनाएँ: CREATE TABLE SecondTable ( UserId INT, UserAge INT ); पहली टेबल में Age कॉलम जोड़ें

  1. - MySQL में 'FROM' को कॉलम नाम कैसे बनाएं?

    चूंकि FROM एक आरक्षित शब्द है, इसे कॉलम नाम मानने के लिए बैकटिक्स प्रतीक का उपयोग करें। हम अब FROM आरक्षित शब्द को बैकटिक से घेरकर एक टेबल बनाएंगे: mysql> create table DemoTable1810 ( `from` varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड

  1. - MySQL में मान 0 होने पर दूसरे कॉलम का मान कैसे चुनें?

    IF() फ़ंक्शन का उपयोग यदि किसी कॉलम का मान 0 है तो दूसरे कॉलम का मान लेने के लिए IF() फ़ंक्शन प्रयोग करें: select IF(yourColumnName1=0, yourColumnName2, yourColumnName1) as anyAliasName from yourTableName; टेबल बनाना और डेटा डालना insert into demo30(value,original_value) values(30,0); डेटा देखना