DANH MỤC: NODE.JS & MONGODB

Bài 7: Update dữ liệu trong MongoDB trên Node.js


Tiết tục với series, phần này chúng ta sẽ tìm hiểu về cách sửa đổi dữ liệu trong collection trên MongoDB bằng Node.js

1, Sửa đổi một bản ghi trong MongoDB.

 -Để có thể sửa đổi một bản ghi duy nhất trong MognoDB trên Node.js thì các bạn sử dụng phương thức updateOne() với cú pháp sau:

.updateOne(filter, newDocument, options, callback)

Trong đó:

  • filter là object chứa các điều kiện query để chọn ra bản ghi cần sửa (xem query).
  • newDocument là object chứa các trường và dữ liệu mới của các trường đó.
  • options là thông số cấu hình thêm (xem). Tham số này có thể bỏ trống.
  • callback là hàm sẽ được gọi khi thực thi query, thường thì ta sử dụng luôn closure function.
Lưu ý: Khi sử dụng phương thức updateOne thì nếu như dữ liệu so khớp với điều kiện filter lớn hơn 1 bản ghi thì nó sẽ chỉ sửa đổi duy nhất 1 bản ghi đầu tiên trong số các bản ghi so khớp.

VD: Sửa bản ghi có name = 'ao phong' và có price = 75000 thành ao phong 2 có giá 100000.

const mongoClient = require('mongodb').MongoClient;
mongoClient.connect('mongodb://127.0.0.1:27017/nodedb', function(err, db) {
    if (err) throw err;
    var products = db.collection('products');
    products.updateOne({name: 'ao phong', price: 75000}, {$set: {name: 'ao phong 2', price: 100000}}, function (err,res) {
        if (err) throw err;
        console.log('update success: ' + res.result.nModified + ' record');
    });
    db.close();
});

Kết quả trả về:

update success: 1 record

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

-Nếu như muốn sửa đổi dữ liệu của tất cả các bản ghi tìm được thì chúng ta sử dụng phương thức updateMany() theo cú pháp sau:

.updateMany(filter, newDocument, options, callback)

Trong đó:

  • filter là object chứa các điều kiện query để chọn ra bản ghi cần sửa (xem query).
  • newDocument là object chứa các trường và dữ liệu mới của các trường đó.
  • options là thông số cấu hình thêm (xem). Tham số này có thể bỏ trống.
  • callback là hàm sẽ được gọi khi thực thi query, thường thì ta sử dụng luôn closure function.

VD: Tìm tất cả các bản ghi có name= 'ao thun' và sửa thành 'ao thun trang'

const mongoClient = require('mongodb').MongoClient;
mongoClient.connect('mongodb://127.0.0.1:27017/nodedb', function(err, db) {
    if (err) throw err;
    var products = db.collection('products');
    products.updateMany({name: 'ao thun'}, {$set: {name: 'ao thun trang'} }, function (err,res) {
        if (err) throw err;
        console.log('update success: ' + res.result.nModified + ' records');
    });
    db.close();
});

Kết quả trả về:

update success: 4 records

3, Lời kết.

-Ngoài hai phương thức mình đã giới thiệu ở phía trên thì các bạn cũng có thể sử dụng phương thức update() (có thể cấu hình sửa một hoặc nhiều bản ghi) - bạn nào cần thì xem thêm tại bài 10 trong series mongoDB

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

The best way to learn is to share

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia