PouchDB - Cập nhật tài liệu
Bất cứ khi nào, chúng tôi tạo một tài liệu trong PouchDB, một trường mới _rev được tạo ra và nó được gọi là revision marker. Các_revGiá trị của là một số ngẫu nhiên duy nhất, mỗi khi chúng tôi thực hiện thay đổi đối với tài liệu, giá trị của _rev bị thay đổi.
Bạn có thể cập nhật tài liệu hiện có trong PouchDB bằng cách sử dụng (_rev). Để làm như vậy, trước hết truy xuất_revgiá trị của tài liệu mà chúng tôi muốn cập nhật. Bây giờ, đặt nội dung sẽ được cập nhật cùng với_rev giá trị trong tài liệu mới, và cuối cùng chèn tài liệu này vào PouchDB bằng cách sử dụng put() phương pháp.
Thí dụ
Giả sử chúng ta có một tài liệu trong PouchDB với id 001trong đó có chi tiết của một người. Để cập nhật tài liệu này, chúng ta nên có số hiệu của nó. Do đó, để truy xuất nội dung của tài liệu, mã sau được sử dụng.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('my_database');
//Reading the contents of a Document
db.get('001', function(err, doc) {
if (err) {
return console.log(err);
} else {
console.log(doc);
}
});
Khi thực hiện đoạn mã trên, bạn sẽ nhận được kết quả sau.
{
_id: '001',
_rev: '3-552920d1ca372986fad7b996ce365f5d',
name: 'Raju',
age: 23,
designation: 'Designer'
}
Bây giờ, sử dụng _rev bạn có thể cập nhật giá trị của khóa “age”Thành 26, như được hiển thị trong đoạn mã sau.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('my_database');
//Preparing the document for update
doc = {
age: 26,
_rev: '3-552920d1ca372986fad7b996ce365f5d',
}
//Inserting Document
db.put(doc);
//Reading the contents of a Document
db.get('001', function(err, doc) {
if (err) {
return console.log(err);
} else {
console.log(doc);
}
});
Lưu đoạn mã trên vào một tệp có tên Update_Document.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằngnode như hình bên dưới.
C:\Pouch_Examples>node Update_Document.js
Điều này cập nhật nội dung của tài liệu đã cho tồn tại trong cơ sở dữ liệu có tên my_databaseđược lưu trữ cục bộ. Thông báo sau được hiển thị trên bảng điều khiển.
{
name: 'Raju',
age: 26,
designation: 'Designer',
_id: '001',
_rev: '2-61b523ccdc4e41a8435bdffbb057a7a5'
}
Cập nhật tài liệu trong cơ sở dữ liệu từ xa
Bạn cũng có thể cập nhật tài liệu hiện có trong cơ sở dữ liệu được lưu trữ từ xa trên máy chủ (CouchDB).
Để làm như vậy, thay vì tên cơ sở dữ liệu, bạn cần phải chuyển đường dẫn đến cơ sở dữ liệu trong CouchDB, chứa tài liệu sẽ được cập nhật.
Thí dụ
Giả sử có một cơ sở dữ liệu có tên my_databasetrong máy chủ CouchDB. Sau đó, nếu bạn xác minh danh sách cơ sở dữ liệu trong CouchDB bằng URLhttp://127.0.0.1:5984/_utils/index.html bạn sẽ nhận được ảnh chụp màn hình sau.
Bằng cách nhấp vào cơ sở dữ liệu có tên my_database, bạn có thể xem ảnh chụp màn hình sau. Ở đây, bạn có thể thấy rằng cơ sở dữ liệu này chứa một tài liệu có id001.
Sau đây là ví dụ về việc cập nhật tuổi của tài liệu có id là “001”Tồn tại trong cơ sở dữ liệu có tên my_database được lưu trữ trong máy chủ CouchDB.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');
//Preparing the document for update
doc = {
age: 26,
_rev: '3-552920d1ca372986fad7b996ce365f5d',
}
//Inserting Document
db.put(doc);
//Reading the contents of a Document
db.get('001', function(err, doc) {
if (err) {
return console.log(err);
} else {
console.log(doc);
}
});
Lưu đoạn mã trên vào một tệp có tên Remote_Update_Document.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằngnode như hình bên dưới.
C:\PouchDB_Examples >node Remote_Update_Document.js
Điều này cập nhật nội dung của tài liệu đã cho tồn tại trong cơ sở dữ liệu có tên my_databaseđược lưu trữ trong CouchDB. Thông báo sau được hiển thị trên bảng điều khiển.
{
_id: '001',
_rev: '2-b9640bffbce582c94308905eed8bb545',
name: 'Raju',
age: 26,
designation: 'Designer'
}