我有文档,看起来像
{
...
date: '2013-05-25T04:06:20.277Z',
user: 'user1'
...
}
我需要查找日期在给定范围内和给定用户的文档。我还需要按日期排序。
我已经尝试过emit([doc.user, dateToArray(doc.date)], null)
但是有了这个,我无法按日期排序,因为AFAIK需要排序的键必须在左侧。这是对的吗?
如果我尝试以相反的方式翻转键,无论我在startKey和endKey中输入什么用户,它都不会改变任何东西。
例如:startKey:[[0,11,21,0,0,0],"user1"]
,endKey:[[2016,11,21,0,0,0],"user1"]
查找所有用户的文档,即使我认为它只找到文档,其中第二个键是user1。
我应该怎么做?我的文档数量可以达到数百万,所以在代码端做一些事情是毫无疑问的。
现在,我最终有 2 个单独的视图(按日期和按用户和日期)
当我只需要按日期查找时,我使用以日期为唯一键的 byDate 视图,排序工作正常。此外,当我按特定用户搜索时,我使用 byUserAndDate 它以 [doc.user, doc.date]
作为其复合键,当结果仅包含 1 个用户的项目时,排序显然工作正常,因为它将首先按用户排序,然后按日期。