Сортировка просмотров по атрибуту для нумерации страниц

Допустим, у меня есть 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 имеет большое значение.

Другие вопросы по тегам