Сортировка просмотров по атрибуту для нумерации страниц
Допустим, у меня есть 1000 таких вещей:
{ "_id": "12345", "type": "item", "name": "whatever", "timestamp": 1481659373 }
И у меня есть мнение, что захватывает только определенный тип.
Посмотреть
function (doc) { emit([doc.type], doc._id); }
параметры
startkey: ["item"]
endkey: ["item"]
include_docs: true
Я знаю, что могу использовать offset
а также limit
для нумерации страниц. Но я пытаюсь сначала взять самые последние временные метки в порядке убывания. Я вижу, что есть descending
вариант, но, похоже, вы только установите его в значение true, поэтому я не уверен в его функциональности.
Есть ли у кого-нибудь какие-либо рекомендации о том, как я могу сделать это?
1 ответ
Если вы измените свою функцию карты, чтобы прочитать:
function (doc) { emit([doc.type, doc.timestamp], doc._id); }
Затем ключи в представлении будут отсортированы по типу, а затем по метке времени.
Затем мы можем запросить представление следующим образом:
startkey: ["itemz"]
endkey: ["item"]
descending: true
include_docs: true
Чтобы получить самые последние документы в первую очередь. descending
флаг указывает, что вы хотите, чтобы элементы в обратном порядке, но вы также должны убедиться, что ваш startkey
имеет большое значение.