У меня есть пара документов в моей CouchDB, отформатированных следующим образом:
{ type: "event", start: "2012-02-08T19:30+01:00", title: "foo" }
Существует представление, которое перечисляет эти документы, используя start
в качестве ключа. Это потому, что эти даты сортируются естественным образом:
function (doc) {
if (doc.type == "event") emit(doc.start, doc)
}
Затем я могу получить доступ к следующим трем событиям с помощью параметра запроса startkey
: viewname?startkey=\"2012-02-08\"&limit=3
Теперь я использую список для форматирования этого представления с помощью HTML:
function (doc, req) {
return provides("html", function() {
// something with getRow() to query the view
});
}
Текущая дата является динамической и не может быть указана непосредственно в функции карты представления, но есть ли способ установить свойство startkey
в функции списка? Прежде чем позвонить getRow()
в первый раз? Конечно, я мог бы разобрать ключ и сравнить его с текущей датой в списке, но это полностью аннулирует намерения параметров запроса. Есть ли способ лучше?
Предыстория
URL-адрес списка на самом деле переписан из гораздо более красивого URL-адреса. У меня есть следующие свойства в rewrites.json:
{
"from": "/ausstellungen/rueckblick",
"to": "_list/rueckblick/exhibitions",
"query": {
"startkey": "\"2012-02-08\"",
"descending": true
}
}
Дата является статической, но параметр всегда должен отражать текущую дату.