Sử dụng toán tử $rename trong phương thức update() với tùy chọn multi: true để đổi tên trường cho tất cả document.
Cú pháp
db.tênCollection.update({}, {$rename: {"tenTruongCu": "tenTruongMoi"}}, false, true);
Tham số: false (upsert), true (multi - cập nhật nhiều document).
Ví dụ minh họa
Tạo collection renameFieldDemo:
> db.renameFieldDemo.insertOne({"TenSinhVien": "John"});
> db.renameFieldDemo.insertOne({"TenSinhVien": "Carol"});
> db.renameFieldDemo.insertOne({"TenSinhVien": "Bob"});
> db.renameFieldDemo.insertOne({"TenSinhVien": "David"});
> db.renameFieldDemo.insertOne({"TenSinhVien": "Maxwell"});
Đổi tên trường TenSinhVien thành HoVaTenSinhVien:
> db.renameFieldDemo.update({}, {$rename: {"TenSinhVien": "HoVaTenSinhVien"}}, false, true);
WriteResult({ "nMatched": 5, "nUpserted": 0, "nModified": 5 })
Kết quả:
{ "_id": ObjectId("..."), "HoVaTenSinhVien": "John" }
{ "_id": ObjectId("..."), "HoVaTenSinhVien": "Carol" }
{ "_id": ObjectId("..."), "HoVaTenSinhVien": "Bob" }
{ "_id": ObjectId("..."), "HoVaTenSinhVien": "David" }
{ "_id": ObjectId("..."), "HoVaTenSinhVien": "Maxwell" }
Lưu ý: MongoDB 3.2+ khuyến nghị dùng updateMany() thay vì update() với tham số multi.