我有文件,看起来像
{
...
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。
我该怎么做?我的文档数量可能高达数百万,所以在代码端做一些事情是不可能的..
答案 0 :(得分:0)
至少现在,我最终有2个单独的观点( byDate 和 byUserAndDate )
当我需要仅按日期查找时,我使用 byDate 视图,其中日期为唯一键,排序工作正常。此外,当我按特定用户搜索时,我使用 byUserAndDate ,其中[doc.user, doc.date]
作为其复合键,当结果仅包含1个用户的项目时,排序显然正常,因为它将排序按用户先行,然后按日期。