Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Cách đổi tên trường cho tất cả document trong MongoDB

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.