Viết số lượng lớn mongodb

Tiếp tục với phần này của loạt bài, chúng ta sẽ tìm hiểu về các bản cập nhật của một hoặc nhiều bản ghi trong MongoDB

1, Sửa đổi 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: ,
        writeConcern: 
        collation: ,
    }
)

in which

  • bộ lọc là một đối tượng chứa các tiêu chí lựa chọn bản ghi cập nhật (sử dụng bộ chọn cú pháp)
  • cập nhật là đối tượng chứa dữ liệu được sửa đổi trên bản ghi
  • upsert là một cấu hình boolean điều gì sẽ xảy ra khi không có bản khớp với bộ lọc. Nếu upsert = true thì nó sẽ thêm bản ghi mới nếu không có bản ghi nào phù hợp với bộ lọc và sẽ không có điều gì xảy ra nếu upsert = false. Default thì upsert = false
  • writeConcern là một tài liệu chứa mối quan tâm ghi
  • đối chiếu là một tài liệu chứa các quy tắc

Lưu ý . Khi sử dụng phương thức updateOne() nếu như dữ liệu khớp với bộ lọc 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. Edit name of admin with age = 18 toidicode

db.admin.updateOne(
    {age: 18},
    {
        $set: {
            name: "Toidicode"
        }
    }
)

Viết số lượng lớn mongodb

Hình minh họa

2,  Sửa đổi nhiều bản ghi trong MongoDB

- Để 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: ,
        writeConcern: 
        collation: ,
    }
)

in which

  • bộ lọc là một đối tượng chứa các tiêu chí lựa chọn bản ghi cập nhật (sử dụng bộ chọn cú pháp)
  • cập nhật là đối tượng chứa dữ liệu được sửa đổi trên bản ghi
  • upsert là một cấu hình boolean điều gì sẽ xảy ra khi không có bản khớp với bộ lọc. Nếu upsert = true thì nó sẽ thêm bản ghi mới nếu không có bản ghi nào phù hợp với bộ lọc và sẽ không có điều gì xảy ra nếu upsert = false. Default thì upsert = false
  • writeConcern là một tài liệu chứa mối quan tâm ghi
  • đối chiếu là một tài liệu chứa các quy tắc

- Lưu ý . Phương thức này chỉ khác với phương thức updateOne() tại chỗ. Nếu như số lượng bản ghi so khớp với bộ lọc 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. Edit name of admin has name = "Vu Thanh Tai" thành Toidicode

db.admin.updateMany(
    {name: "Vu Thanh Tai"},
    {
        $set: {
            name: "Toidicode"
        }
    }
)

Viết số lượng lớn mongodb

Hình minh họa

3, Sửa đổi bản ghi trong MongoDB

- 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: ,
     multi: ,
     writeConcern: ,
     collation: 
   }
)

in which

  • bộ lọc là một đối tượng chứa các tiêu chí lựa chọn bản ghi cập nhật (sử dụng bộ chọn cú pháp)
  • cập nhật là đối tượng chứa dữ liệu được sửa đổi trên bản ghi
  • upsert là một cấu hình boolean điều gì sẽ xảy ra khi không có bản khớp với bộ lọc. Nếu upsert = true thì nó sẽ thêm bản ghi mới nếu không có bản ghi nào phù hợp với bộ lọc và sẽ không có điều gì xảy ra nếu upsert = false. Default thì upsert = false
  • multi is a boolean config view has allow to edit many write or not, multi as true is allow and reverse by false then is not. Mặc định thì thuộc tính này có giá trị là sai
  • writeConcern là một tài liệu chứa mối quan tâm ghi
  • đối chiếu là một tài liệu chứa các quy tắc

VD3. Sửa đổi tên của một bản ghi duy nhất có tên là "Toidicode" thành "Vu Thanh Tai"

db.admin.updateOne(
    {name: "Vu Thanh Tai"},
    {
        $set: {
            name: "Toidicode"
        }
    },
    {
        multi : false
    }
)

Viết số lượng lớn mongodb

Hình minh họa

4, Lời kết

-Như vậy phần này mình đã hướng dẫn mọi người 3 cách để sửa đổi dữ liệu trong bộ sưu tập 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 bộ sưu tập

Đăng ký nhận tin

Chúng tôi chỉ gửi tối đa 2 lần trong 1 tháng. Tuyên bố không spam mail

Đăng ký

MongoDB

Bài trước   Bài sau

3 nhận xét 507 lượt thích

Viết số lượng lớn mongodb

Vũ Thành Tài

Về tác giả

Cách học tốt nhất là chia sẻ

Xem tất cả bài đăng

Bài Viết Mới

  • Viết số lượng lớn mongodb

    Những tính năng mới trong PHP 8. 1

    1 năm trước 7 Nhận xét

  • Viết số lượng lớn mongodb

    Bài 39. Bộ đệm trong Laravel 8

    2 năm trước 1 Nhận xét

  • Viết số lượng lớn mongodb

    PHP Swoole là gì?

    2 năm trước 0 Nhận xét

  • Viết số lượng lớn mongodb

    Cài đặt SSL trên local sử dụng mkcert

    2 năm trước 4 Nhận xét

3 bình luận

Viết số lượng lớn mongodb

anh Vũ Thành Tài ơi cảm ơn bài viết rất hay của anh. Nhưng có vấn đề này em mong anh giúp. Anh chỉ em cách cập nhật các trường con trong tài liệu với  em cập nhật các trường cấp 1 của tài liệu thì được các trường con ở sâu trong tài liệu thì không biết cách cập nhật.  

Ví dụ. has Document as after

{
"_Tôi". ObjectId("5ab35d987d807b5dfebeffc6"),
"SBD". "A01001",
"TG_ConLai". 2280,
    "DaNopBai". 0,
"Diễm". 0. 0,
"Đế Thi". [
{
"idcauhoi". 1,
"noidung_cauhoi". "1+2=?",
"phuongan_tl". [
1,
2,
3,
4,
5
],
"dapan". 3,
"ts_tl". 1
},
{
"idcauhoi". 2,
"noidung_cauhoi". "2+2=?",
"phuongan_tl". [
1,
2,
3,
4,
5
],
"dapan". 4,
"ts_tl". 2
}
]
}

Em muốn cập nhật trường ts_tl có idcauhoi là 1 thành 3 thì điều kiện và cách cập nhật như thế nào. Mong anh dẫn đường. Thanks