Để thay đổi tên trường (đổi tên field) trong kết quả truy vấn, sử dụng $project trong aggregation pipeline. Tạo collection:
> db.demo517.insertOne({"Name":"Chris Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88a2a2987b6e0e9d18f595") }
> db.demo517.insertOne({"Name":"David Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88a2ab987b6e0e9d18f596") }
> db.demo517.insertOne({"Name":"John Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88a2b1987b6e0e9d18f597") }
Hiển thị dữ liệu gốc:
> db.demo517.find();
Kết quả:
Sử dụng
$projectđổi tên trường Name thành FullName:> db.demo517.aggregate([{$project:{FullName:"$Name"}}]);Kết quả - trường Name đã đổi thành FullName:
Lưu ý quan trọng:
$projectchỉ thay đổi tên trường trong kết quả trả về, không sửa đổi dữ liệu gốc trong database.Để đổi tên trường vĩnh viễn trong database, dùng
$renamevớiupdateMany():db.demo517.updateMany({}, { $rename: { "Name": "FullName" } })Lệnh này sẽ đổi tên trường Name thành FullName cho tất cả tài liệu trong collection.