По какой-то причине мой фильтр работает неправильно.Несколько минут назад он работал нормально, а затем по какой-то причине прекратил возвращать все шаблоны и только начал возвращать один из них.
Любая помощь в том, почему он возвращает его дважды, но только дает мне один, будет оченьпризнателен.
У меня есть следующий код:
export async function testMe() {
const company_id = await AsyncStorage.getItem('company_id');
const device_db = new PouchDB(company_id, {});
device_db.query(function(doc, emit){
console.log(doc.type, doc._id, doc._rev);
if(doc.type == 'template') {
emit(doc._id, doc);
}
}).then((result) => {
console.log("Returned", result);
})
}
Что странно происходит, это то, что возвращает get:
template template_1 18-5918af4c5370d9755d0bb8b6dcb21ea1
template template_2 19-8191dec49dfa8c1a2f03d752a193f09e
template template_3 39-74f3b82ce4a38a501810b5ff31efc593
undefined "dpbcab6843-2cdf-4d4c-87ae-286dcddaac22" "2-8f03f3127771dadd3c8f7beb3e827982"
undefined "dpdc6f6cd0-6c6d-4974-a166-b848a0217af4" "2-0eec1a8d925641aa8bf30e058e6515e7"
undefined "dpe1573a70-a281-4e15-a997-82d8bf8fabfa" "2-d3bbcb81344f61cc94459610695c6670"
template template_3 39-74f3b82ce4a38a501810b5ff31efc593
Вы можете игнорировать неопределенное, ното, что я пытаюсь показать, это посмотреть, что get возвращается дважды:
template template_3 39-74f3b82ce4a38a501810b5ff31efc593
В Returned
console.log (), это единственное, что возвращается get (последний кусок данных template_3,полностью игнорируя другие шаблоны, даже если они оба типа template
):
{"total_rows":6,"offset":0,"rows":[{"key":"template_3","id":"template_3","value":{..}}]}
РЕДАКТИРОВАТЬ:
Это становится еще более странным.Я просто открыл template_2
и сделал сохранение (в облачном хранилище) и синхронизировал его с моим устройством для обновления _rev
, и теперь я получаю:
template template_1 18-5918af4c5370d9755d0bb8b6dcb21ea1
template template_2 20-c549fe868735ef0099b80f6668af611c
template template_3 39-74f3b82ce4a38a501810b5ff31efc593
undefined "dpbcab6843-2cdf-4d4c-87ae-286dcddaac22" "2-8f03f3127771dadd3c8f7beb3e827982"
undefined "dpdc6f6cd0-6c6d-4974-a166-b848a0217af4" "2-0eec1a8d925641aa8bf30e058e6515e7"
undefined "dpe1573a70-a281-4e15-a997-82d8bf8fabfa" "2-d3bbcb81344f61cc94459610695c6670"
template template_3 39-74f3b82ce4a38a501810b5ff31efc593
template template_2 20-c549fe868735ef0099b80f6668af611c
, который возвращает (пропуская template_3):
{"total_rows":6,"offset":0,"rows":[{"key":"template_2","id":"template_2","value":{..}}]}
РЕДАКТИРОВАТЬ # 2 :
Я добавил:
.catch((err) => {
console.log(err);
})
И получить это: {"status":409,"name":"conflict","message":"Document update conflict","error":true}
ОДНАКО,Я делаю следующее: все _conflict
массивы пусты.
device_db.allDocs({conflicts: true})
.then((data) => {
for (let d of data.rows) {
console.log(d.doc._conflicts);
}
});