如何在couchdb中按日期排序多个键

时间:2012-12-21 10:07:15

标签: couchdb

我有一个视图,其值为

function(doc) {
 var d = new Date(doc.created_date);
 emit([d,doc.unique_id],doc);
}

这里我必须在一个查询中获得多个unique_id。所以我使用Keys = [“unique_id1”,“unique_id1”]来获取id ..但是我需要它们按日期排序并获得unique_id。如果我如上所述查询我没有从db获得任何结果。但如果我更改视图如下并查询它我正在得到结果但没有按日期排序。

function(doc) {
 emit(doc.unique_id,doc);
}

有人可以建议我如何在一个查询中同时获取????

Select * from db where unique_id in {"1","3"} order by date

这就是我在couchdb中需要的东西

1 个答案:

答案 0 :(得分:0)

你做不到。在CouchDB中,您可以通过唯一键或一组键进行查询,也可以查询范围。因此,如果您想通过一组唯一ID进行查询而无需在查询中指定其创建日期,则无法在密钥中创建创建日期,因此CouchDB无法按创建日期排序。在这种情况下,您可以使用唯一的ID-only密钥,并在客户端(即查询后)按created_date对结果进行排序。

另一种方法是你指定一个包含[unique_id,created_date]的键,但在这种情况下你不能查询[1,*]和[3,*]而不包括[2,*](你可以在客户端查询后再次过滤掉。