MongoDB में, आप किसी संग्रह में दस्तावेज़ अपडेट करते समय एक फ़ील्ड का नाम बदल सकते हैं।
किसी फ़ील्ड का नाम बदलने के लिए, $rename
. पर कॉल करें क्षेत्र के वर्तमान नाम और नए नाम के साथ ऑपरेटर। यह उन सभी मेल खाने वाले दस्तावेज़ों में फ़ील्ड का नाम बदल देता है जिनमें उस नाम वाली फ़ील्ड होती है।
उदाहरण
मान लीजिए हमारे पास employees
. नामक संग्रह है निम्नलिखित दस्तावेजों के साथ:
{ "_id" : 1, "name" : "Sandy", "salary" : 55000 } { "_id" : 2, "name" : "Sarah", "salary" : 128000 } { "_id" : 3, "name" : "Fritz", "salary" : 25000 } { "_id" : 4, "name" : "Chris", "salary" : 45000 } { "_id" : 5, "name" : "Beck", "salary" : 82000 }
और मान लीजिए हम name
. का नाम बदलना चाहते हैं employees
. के लिए फ़ील्ड ।
हम यह कर सकते हैं:
db.employees.updateMany(
{ },
{ $rename: { "name": "employee" } }
)
आउटपुट:
{ "acknowledged" : true, "matchedCount" : 5, "modifiedCount" : 5 }
अब जब हम find()
. का उपयोग करते हैं संग्रह में दस्तावेजों को वापस करने की विधि, हम निम्नलिखित परिणाम देखते हैं:
db.employees.find()
परिणाम:
{ "_id" : 1, "salary" : 55000, "employee" : "Sandy" } { "_id" : 2, "salary" : 128000, "employee" : "Sarah" } { "_id" : 3, "salary" : 25000, "employee" : "Fritz" } { "_id" : 4, "salary" : 45000, "employee" : "Chris" } { "_id" : 5, "salary" : 82000, "employee" : "Beck" }
एकाधिक फ़ील्ड का नाम बदलें
आप कई फ़ील्ड को अल्पविराम से अलग करके उनका नाम बदल सकते हैं।
उदाहरण:
db.employees.updateMany(
{ },
{ $rename: { "employee": "e", "salary": "s" } }
)
आउटपुट:
{ "acknowledged" : true, "matchedCount" : 5, "modifiedCount" : 5 }
और अब यह संग्रह कैसा दिखता है:
{ "_id" : 1, "e" : "Sandy", "s" : 55000 } { "_id" : 2, "e" : "Sarah", "s" : 128000 } { "_id" : 3, "e" : "Fritz", "s" : 25000 } { "_id" : 4, "e" : "Chris", "s" : 45000 } { "_id" : 5, "e" : "Beck", "s" : 82000 }
एम्बेडेड दस्तावेज़
एम्बेड किए गए दस्तावेज़ों में फ़ील्ड नामों को अपडेट करने के लिए आप डॉट नोटेशन का उपयोग कर सकते हैं।
उदाहरण दस्तावेज़:
db.pets.findOne()
परिणाम:
{ "_id" : 1, "name" : "Wag", "details" : { "type" : "Dog", "weight" : 20, "awards" : { "Florida Dog Awards" : "Top Dog", "New York Marathon" : "Fastest Dog", "Sumo 2020" : "Biggest Dog" } } }
आइए एम्बेड किए गए दस्तावेज़ में कुछ फ़ील्ड अपडेट करें:
db.pets.updateMany(
{ },
{ $rename: {
"details.type": "details.t",
"details.weight": "details.w",
"details.awards": "details.a"
}
}
)
अब जब हम दस्तावेज़ की जाँच करते हैं, तो हम निम्नलिखित देखते हैं:
db.pets.findOne()
परिणाम:
{ "_id" : 1, "name" : "Wag", "details" : { "a" : { "Florida Dog Awards" : "Top Dog", "New York Marathon" : "Fastest Dog", "Sumo 2020" : "Biggest Dog" }, "t" : "Dog", "w" : 20 } }
हम एम्बेडेड दस्तावेज़ों में एम्बेड किए गए दस्तावेज़ों के फ़ील्ड नामों को भी अपडेट कर सकते हैं:
db.pets.updateMany(
{ },
{ $rename: {
"details.a.Florida Dog Awards": "details.a.fda",
"details.a.New York Marathon": "details.a.nym",
"details.a.Sumo 2020": "details.a.s2020"
}
}
)
और दस्तावेज़ को फिर से जांचें:
db.pets.findOne()
परिणाम:
{ "_id" : 1, "name" : "Wag", "details" : { "a" : { "fda" : "Top Dog", "nym" : "Fastest Dog", "s2020" : "Biggest Dog" }, "t" : "Dog", "w" : 20 } }