Всякий раз, когда я пытаюсь использовать индексы с pouchdb, будь то через код или через собственный HTTP-интерфейс, запросы больше никогда не работают.
Например, допустим, у меня есть 10 строк, содержащих имя и оценку:
db.put({_id: '0', name: 'name0', score: 10});
db.put({_id: '1', name: 'name1', score: 56});
...
Я могу мгновенно получить записи с именем, например, или с оценкой, соответствующей некоторым правилам, например:
let result = await db.find({
selector: {
score: {
$gt: 20
}
}
});
Но это не позволяет мне сортировать,для этого нужен индекс:
await db.createIndex({
index: {
fields: ['score']
}
});
И с этого момента любой запрос, связанный с счетом, просто ничего не возвращает.
Если я попытаюсь на самом деле отсортировать результаты (это неt существует), что действительно является смыслом использования индекса, тогда он говорит мне, что не может отсортировать по баллу при использовании индекса по умолчанию.
// Same DB, same index...
try {
let result = await db.find({
selector: {
score: {
$gt: 20
}
},
sort: ['score']
});
console.log(result);
} catch (e) {
console.log(e);
}
Результат:
{ error: 'bad_request',
reason:
'Cannot sort on field(s) "score" when using the default index',
status: 400,
name: 'bad_request',
message:
'Cannot sort on field(s) "score" when using the default index' }
Так что я должен спросить, я делаю что-то явно неправильно?потому что все, что я делал, это следовал примерам на странице pouchdb, и все же, похоже, на самом деле ничего не работает.