Создание представления, которое генерирует все идентификаторы документов.Ключи просмотра будут использоваться для автоматической сортировки.
function(doc) {
if(doc.type && doc.type === 'message'){
emit(doc._id, null);
}
}
Затем выполните запрос: http://host/yourdb/_design/yourdesigndoc/_view/viewname?limit=10&include_docs=true&descending=true
Поскольку вы хотите получить полный документ, мы не включили ничего в качестве значения вПосмотреть.Вместо этого мы добавляем include_docs=true
для извлечения каждого полного документа для записей представления.
Обратите внимание, что есть также встроенное представление, которое делает то же самое: http://host/yourdb/_all_docs?limit=10&include_docs=true&descending=true
PS: Вы должны бытьПомните о том, что CouchDB по умолчанию использует UUID в качестве идентификаторов, что сделает сортировку более или менее бесполезной, если вы действительно хотите получить последние документы.Либо предоставьте свои собственные инкрементные идентификаторы (как насчет распределения / репликации?), Либо используйте новое поле, в котором хранится время создания документа и его использование в представлении.
Если в ваших документах естьПоле created
(т. Е. Отметка времени UNIX, JavaScript Date.now () или даже строка, подобная RFC 3339), вы можете построить индекс по этим значениям.
Вот представление на основе времени:
function(doc) {
if(doc.type && doc.type === 'message' && doc.created){
emit(doc.created, null);
}
}
Обратите внимание, что мы не будем выдавать сам doc._id.Однако CouchDB автоматически сохраняет doc._id
, откуда поступили данные для каждой пары «ключ / значение», поэтому мы можем снова использовать include_docs=true
для получения полных документов.
Запрос http://host/yourdb/_design/yourdesigndoc/_view/viewname?limit=10&include_docs=true&descending=true