PouchDB-일괄 업데이트
다음을 사용하여 PouchDB의 문서 배열을 한 번에 업데이트 할 수 있습니다. bulkDocs()방법. 이렇게하려면 각 문서에 포함 된 문서 배열을 만들어야합니다._id, _rev 업데이트 할 값입니다.
데이터베이스 이름이 my_database PouchDB에 로컬로 저장되는 파일에는 다음 내용이 포함 된 doc1, doc2, doc3의 3 개 문서가 포함되어 있습니다.
doc1 = {_id: '001', name: 'Ram', age: 23, Designation: 'Programmer'}
doc2 = {_id: '002', name: 'Robert', age: 24, Designation: 'Programmer'}
doc3 = {_id: '003', name: 'Rahim', age: 25, Designation: 'Programmer'}
3 개 문서 모두의 연령 값을 2 년 늘려야한다고 가정합니다. 이를 위해서는 먼저_rev가치. 따라서 다음 코드를 사용하여 이러한 문서의 내용을 가져옵니다.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('my_database');
//Retrieving all the documents in PouchDB
db.allDocs({include_docs: true},function(err, docs) {
if (err) {
return console.log(err);
} else {
console.log(docs.rows);
}
});
위의 코드를 다른 이름으로 저장하십시오. bulk_fetch.js. 실행시 위 프로그램은 아래와 같이 데이터베이스에있는 문서의 _id 및 _rev 값을 제공합니다.
[
{
id: '001',
key: '001',
value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' }
},
{
id: '002',
key: '002',
value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' }
},
{
id: '003',
key: '003',
value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' }
}
]
이제 각 문서를 사용하여 문서를 업데이트 할 수 있습니다. _id 과 _rev 값은 아래와 같습니다.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('my_databas');
//Preparing the document
docs = [{_id : '001', _rev: '1-1604b0c3ff69dc1e261265fd60808404', age : 25, },
{_id : '002', _rev: '1-b5e49db7e984841bf12a13e3ee548125', age : 26, },
{_id : '003', _rev: '1-a7b342786ecc707aa91f3b321a177b51', age : 27 }]
//Updating the documents in bulk
db.bulkDocs(docs, function(err, response) {
if (err) {
return console.log(err);
} else {
console.log("Documents Updated Successfully");
}
});
위의 코드를 이름으로 파일에 저장하십시오. Update_All_Document.js. 명령 프롬프트를 열고 아래와 같이 노드를 사용하여 JavaScript 파일을 실행합니다.
C:\PouchDB_Examples >node Update_All_Document.js
이렇게하면 데이터베이스에있는 모든 문서가 업데이트됩니다. my_database 로컬에 저장되며 다음 메시지를 표시합니다.
Documents Updated Successfully
이제 실행하면 bulk_fetch.js 추가하여 프로그램 {include_docs: true} 매개 변수로 allDocs() 함수를 호출하기 전에 아래와 같이 업데이트 된 문서의 값을 볼 수 있습니다.
[
{
id: '001',
key: '001',
value: { rev: '2-77f3a9974dd578d12f3f2a33aae64c8d' },
doc: {
age: 25,
_id: '001',
_rev: '2-77f3a9974dd578d12f3f2a33aae64c8d'
}
},
{
id: '002',
key: '002',
value: { rev: '2-43966007568ce9567c96422195fcfa0d' },
doc: {
age: 26,
_id: '002',
_rev: '2-43966007568ce9567c96422195fcfa0d'
}
},
{
id: '003',
key: '003',
value: { rev: '2-6c5349652527f4f39583ff14f23cd677' },
doc: {
age: 27,
_id: '003',
_rev: '2-6c5349652527f4f39583ff14f23cd677'
}
}
]
원격 데이터베이스에서 배치 업데이트
서버 (CouchDB)에 원격으로 저장된 데이터베이스에서 모든 문서를 업데이트 할 수 있습니다.
이렇게하려면 데이터베이스 이름 대신 읽을 문서가 포함 된 CouchDB의 데이터베이스 경로를 전달해야합니다.
예
다음과 같은 데이터베이스가 있다고 가정합니다. my_databaseCouchDB 서버에서. 그런 다음 URL을 사용하여 CouchDB의 데이터베이스 목록을 확인하면http://127.0.0.1:5984/_utils/index.html 다음 스크린 샷이 표시됩니다.
그리고 이름이 지정된 데이터베이스를 선택하면 my_database, 다음 스크린 샷과 같이 3 개의 문서가 포함 된 것을 확인할 수 있습니다.
이제 다음 코드를 사용하여 이러한 문서의 내용을 가져옵니다.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');
//Retrieving all the documents in PouchDB
db.allDocs({include_docs: true}, function(err, docs) {
if (err) {
return console.log(err);
} else {
console.log(docs.rows);
}
});
위의 코드를 다른 이름으로 저장하십시오. remote_bulk_fetch.js. 실행시 위의 프로그램은 아래와 같이 데이터베이스에있는 모든 문서의 내용을 제공합니다.
[
{
id: '001',
key: '001',
value: { rev: '3-552920d1ca372986fad7b996ce365f5d' },
doc: {
_id: '001',
_rev: '3-552920d1ca372986fad7b996ce365f5d',
name: 'Raju',
age: 23,
designation: 'Designer'
}
},
{
id: '002',
key: '002',
value: { rev: '1-9af15cb11054ebe03a7816bf6c5e4128' },
doc: {
_id: '002',
_rev: '1-9af15cb11054ebe03a7816bf6c5e4128',
name: 'Robert',
age: 24,
Designation: 'Programmer'
}
},
{
id: '003',
key: '003',
value: { rev: '1-3033b5a78e915c52fd37325d42eb3935' },
doc: {
_id: '003',
_rev: '1-3033b5a78e915c52fd37325d42eb3935',
name: 'Rahim',
age: 25,
Designation: 'Programmer'
}
}
]
다음은 이름이 지정된 데이터베이스에있는 모든 문서를 업데이트하는 예입니다. my_database CouchDB 서버에 저장됩니다.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');
//Preparing the document
docs = [{_id : '001', _rev: '3-552920d1ca372986fad7b996ce365f5d', age : 24, },
{_id : '002', _rev: '1-9af15cb11054ebe03a7816bf6c5e4128', age : 26, },
{_id : '003', _rev: '1-3033b5a78e915c52fd37325d42eb3935', age : 27}]
//Inserting Document
db.bulkDocs(docs, function(err, response) {
if (err) {
return console.log(err);
} else {
console.log(+"Documents Updated Successfully");
}
});
위의 코드를 이름으로 파일에 저장하십시오. Remote_Update_Document.js. 명령 프롬프트를 열고 아래와 같이 노드를 사용하여 JavaScript 파일을 실행합니다.
C:\PouchDB_Examples >node Remote_Update_Document.js
이것은 데이터베이스에 존재하는 모든 주어진 문서의 내용을 업데이트합니다. my_database CouchDB에 저장되고 다음 메시지가 표시됩니다.
Documents Updated Successfully
이제 실행하면 remote_bulk_fetch.js 프로그램은 아래와 같이 업데이트 된 문서의 값을 볼 수 있습니다.
[
{
id: '001',
key: '001',
value: { rev: '4-6bc8d9c7a60fed2ed1667ec0740c1f39' },
doc: {
_id: '001',
_rev: '4-6bc8d9c7a60fed2ed1667ec0740c1f39',
age: 25
}
},
{
id: '002',
key: '002',
value: { rev: '2-1aa24ce77d96bb9d2a0675cdf1e113e0' },
doc: {
_id: '002',
_rev: '2-1aa24ce77d96bb9d2a0675cdf1e113e0',
age: 26
}
},
{
id: '003',
key: '003',
value: { rev: '2-fa113149ba618eda77f73072974a2bc1' },
doc: {
_id: '003',
_rev: '2-fa113149ba618eda77f73072974a2bc1',
age: 27
}
}
]