Я использую Pouchdb для создания базы данных из пользовательских данных, и я хотел бы обновить документ с измененным объектом. Например, у меня есть этот начальный объект:
var doc = {
"_id": "test",
"trial": 0,
"results": [11, 22, 33]
};
Затем я изменяю его:
doc.results[doc.results.length] = 44;
Я хотел бы заменить старый документ на новый. Я попробовал эти шаги:
1/ Инициализировать PouchDB и документ
var db = new PouchDB('test');
var doc = {
"_id": "test",
"trial": 0,
"results": [11, 22, 33]
};
2/ Поместить исходный документ в базу данных
db.put(doc);
3/ Изменить документ
doc.results[doc.results.length] = 44;
4/ Попробуйте обновить базу данных новым документом
db.get('test').then(function(doc) {
return db.put(doc);
}).then(function () {
return db.get('test');
}).then(function (doc) {
console.log(doc);
});
Но документ в базе не модифицируется.
Как я могу обновить документ с измененным объектом?
ОБНОВЛЕНИЕ:
Я не могу заставить обновление работать даже с _rev. По предложению mauritslamers я попытался включить _rev в документ:
var db = new PouchDB('test');
var doc = {
"_id": "test",
"_rev": 0,
"trial": 0,
"results": [11, 22, 33]
};
И в операторе put
со следующим:
db.get('test').then(function(doc) {
return db.put(doc, doc._rev);
}).then(function () {
return db.get('test');
}).then(function (doc) {
console.log(doc);
});
Но это не работает.