Допустим, у меня есть такие документы:
{
_id: "a98798978s978dd98d",
type: "signature",
uid: "u12345",
category: "cat_1",
timestamp: UNIX_TIMESTAMP
}
Моя цель - иметь возможность подсчитать все signature
, созданные определенной uid
, но с возможностью фильтрации по timestamp
Благодаря Алексис я дошел до этой цели с помощью функции уменьшения _count:
function (doc) {
if (doc.type === "signature") {
emit([doc.uid, doc.timestamp], 1);
}
}
Со следующими запросами:
start_key=[null,lowerTimestamp]
end_key=[{},higherTimestamp]
reduce=true
group_level=1
Ответ:
{
"rows": [
{
"key": [ "u11111" ],
"value": 3
},
{
"key": [ "u12345" ],
"value": 26
}
]
}
Он правильно подсчитывает uid
, но фильтр не работает должным образом. Сначала я подумал, что это может быть ошибка CouchDB 2.2, но я попробовал Cloudant и получил тот же ответ.
У кого-нибудь есть идеи о том, как я могу заставить это работать с элем для фильтрации временных меток?