Di MongoDB, Anda dapat mengganti nama bidang saat memperbarui dokumen dalam koleksi.
Untuk mengganti nama bidang, panggil $rename
operator dengan nama bidang saat ini dan nama baru. Tindakan ini akan mengganti nama bidang di semua dokumen yang cocok yang memiliki bidang dengan nama tersebut.
Contoh
Misalkan kita memiliki koleksi yang disebut employees
dengan dokumen sebagai berikut:
{ "_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 }
Dan misalkan kita ingin mengganti nama name
kolom ke employees
.
Kita bisa melakukan ini:
db.employees.updateMany(
{ },
{ $rename: { "name": "employee" } }
)
Keluaran:
{ "acknowledged" : true, "matchedCount" : 5, "modifiedCount" : 5 }
Sekarang ketika kita menggunakan find()
metode untuk mengembalikan dokumen dalam koleksi, kita melihat hasil berikut:
db.employees.find()
Hasil:
{ "_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" }
Ganti Nama Beberapa Bidang
Anda dapat mengganti nama beberapa bidang dengan memisahkannya dengan koma.
Contoh:
db.employees.updateMany(
{ },
{ $rename: { "employee": "e", "salary": "s" } }
)
Keluaran:
{ "acknowledged" : true, "matchedCount" : 5, "modifiedCount" : 5 }
Dan inilah tampilan koleksinya sekarang:
{ "_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 }
Dokumen Tersemat
Anda dapat menggunakan notasi titik untuk memperbarui nama bidang dalam dokumen yang disematkan.
Contoh dokumen:
db.pets.findOne()
Hasil:
{ "_id" : 1, "name" : "Wag", "details" : { "type" : "Dog", "weight" : 20, "awards" : { "Florida Dog Awards" : "Top Dog", "New York Marathon" : "Fastest Dog", "Sumo 2020" : "Biggest Dog" } } }
Mari perbarui beberapa bidang dalam dokumen yang disematkan:
db.pets.updateMany(
{ },
{ $rename: {
"details.type": "details.t",
"details.weight": "details.w",
"details.awards": "details.a"
}
}
)
Sekarang ketika kita memeriksa dokumen, kita melihat yang berikut:
db.pets.findOne()
Hasil:
{ "_id" : 1, "name" : "Wag", "details" : { "a" : { "Florida Dog Awards" : "Top Dog", "New York Marathon" : "Fastest Dog", "Sumo 2020" : "Biggest Dog" }, "t" : "Dog", "w" : 20 } }
Kami juga dapat memperbarui nama bidang dokumen yang disematkan dalam dokumen yang disematkan:
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"
}
}
)
Dan mari kita periksa kembali dokumennya:
db.pets.findOne()
Hasil:
{ "_id" : 1, "name" : "Wag", "details" : { "a" : { "fda" : "Top Dog", "nym" : "Fastest Dog", "s2020" : "Biggest Dog" }, "t" : "Dog", "w" : 20 } }