Предположим, у меня есть 200 документов в моей базе данных с именем "person", и я хочу получить документы в диапазоне от 60 до 70, а затем, как бы я поступил в случае CouchDB. Прямо сейчас я использую выражение mongo и параметр 'skip' для ранжирование запросов, но как только размер пропуска увеличивается, время выполнения запроса также увеличивается, есть ли альтернатива параметру 'skip'?
В RDBMS мы можем легко получать данные, используя нижний предел и верхний предел, но как бы я поступил в случае CouchDB?
Вот мой запрос
$getDocs = '{
"selector": {
"name": {"$ne": "null"}
},
"fields": ["_id", "_rev", "name", "email" ],
"sort": [{"name": "asc" }],
"limit": 10,
"skip": '.$skip.'
}';
Я пытаюсь выполнить разбиение на страницы с PHP и CouchDB, используя Mango Expression и показывая 10 записей на странице.
Смотрите изображение , когда вы нажимаете на изображение, которое вы видите в моем URL-адресе, что я нахожусь на странице 7, что означает, что мне нужно получить документы в диапазоне от 61 до 70, и для этого я использую выше запрос. В приведенном выше запросе я передаю лимит, равный 10, поскольку мне нужно только показать 10 документов на страницу, а также я использую пропуск для пропуска 60 документов, поскольку я нахожусь на странице 7. Таким образом, проблема возникла, как только Количество страниц увеличивается, количество пропускаемых документов также увеличивается, поэтому увеличивается время выполнения запроса. Предположим, что если я на странице 1500, то на странице 1500 мне нужно показать документы между 15001 и 15010, и для этого мне нужно пропустить 15000 документов и пропуск такого количества документов занимают время почти 7 секунд, что довольно много. Так есть ли способ решить эту проблему?