Tiếp tục với series phần này chúng ta sẽ tìm hiểu về các update một hoặc nhiều bản ghi trong […]
Tiếp tục với series phần này chúng ta sẽ tìm hiểu về các update một hoặc nhiều bản ghi trong MongoDB.
-Để sửa đổi một bản ghi duy nhất trong MongoDB thì các bạn sử dụng phương thức updateOne() theo cú pháp sau:
db.collectionName.updateOne(
filter,
update,
{
upsert: <boolean>,
writeConcern: <document>
collation: <document>,
}
) Trong đó:
Lưu ý: Khi sử dụng phương thức updateOne() nếu như dữ liệu khớp với filter nhiều hơn một bản ghi thì nó sẽ chỉ sửa đổi cho một bản ghi đầu tiên.
VD1: Sửa name của admin có tuổi = 18 thành Toidicode.
db.admin.updateOne(
{age: 18},
{
$set: {
name: "Toidicode"
}
}
)
Hình minh họa
-Để sửa nhiều bản ghi trên một lần khai báo trong MongoDB thì mọi người sử dụng phương thức updateMany() với cú pháp tương tự như Phương thức updateOne():
db.collectionName.updateOne(
filter,
update,
{
upsert: <boolean>,
writeConcern: <document>
collation: <document>,
}
) Trong đó:
–Lưu ý: Phương thức này chỉ khác với phương thức updateOne() ở chỗ: Nếu như số lượng bản ghi so khớp với filter lớn hơn 1 bản ghi thì nó sẽ sửa dữ liệu trên tất cả các bản ghi đó.
VD2: Sửa name của admin có name = “Vu Thanh Tai” thành Toidicode.
db.admin.updateMany(
{name: "Vu Thanh Tai"},
{
$set: {
name: "Toidicode"
}
}
) 
Hình minh họa
-Ngoài 2 phương thức trên thì trong MongoDB còn cung cấp cho chúng ta một phương thức update() có thể cấu hình updateOne() hoặc updateMany(), sử dụng theo cú pháp sau:
db.collection.update(
filter,
update,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>,
collation: <document>
}
) Trong đó:
VD3: Sửa đổi name của một bản ghi duy nhất có name là “Toidicode” thành “Vu Thanh Tai“.
db.admin.updateOne(
{name: "Vu Thanh Tai"},
{
$set: {
name: "Toidicode"
}
},
{
multi : false
}
) 
Hình minh họa
-Như vậy phần này mình đã hướng dẫn đến mọi người 3 cách để sửa đổi dữ liệu trong collection rồi, bài tiếp theo chúng ta sẽ tìm hiểu về các cách xóa dữ liệu trong collection.
Lượt xem : 308
This is excellent news!
Haven't seen the build yet, I'll look now.
Checking the build now