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

如何在按日期排序的couchdb中获取多个键,couchdb,Couchdb,我有一个视图,它以 function(doc) { var d = new Date(doc.created_date); emit([d,doc.unique_id],doc); } 在这里,我必须在一个查询中获得多个唯一的\u id。所以我使用Keys=[“unique_id1”,“unique_id1”]来获取id。。但我需要它们按日期排序,并获得唯一的id。如果我像上面提到的那样进行查询,我不会从数据库中得到任何结果。但是如果我像下面那样更改视图并进行查询,我会得到正确的结果,但不

我有一个视图,它以

function(doc) {
 var d = new Date(doc.created_date);
 emit([d,doc.unique_id],doc);
}
在这里,我必须在一个查询中获得多个唯一的\u id。所以我使用Keys=[“unique_id1”,“unique_id1”]来获取id。。但我需要它们按日期排序,并获得唯一的id。如果我像上面提到的那样进行查询,我不会从数据库中得到任何结果。但是如果我像下面那样更改视图并进行查询,我会得到正确的结果,但不会按日期排序

function(doc) {
 emit(doc.unique_id,doc);
}
有谁能建议我如何在一个查询中同时获得这两个信息吗

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

这就是我在couchdb中需要的,你不能那样做。在CouchDB中,您可以通过唯一键或一组键进行查询,也可以查询范围。因此,如果您希望按一组唯一ID进行查询,而不必在查询中指定其创建日期,则密钥中不能包含创建日期,因此CouchDB不能按创建日期为您排序。在这种情况下,您可以使用一个唯一的ID-only键,并根据客户端上的created_date(即查询后)对结果进行排序


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

Ya感谢您的帮助。实际上,我只需要根据创建日期对文档进行排序。。但我还需要它的唯一id。因此,我需要如何传递密钥来完成这项工作。??您可能应该使用唯一的id-only密钥(即您的第二个视图函数),然后在客户端代码中对结果进行排序。这就是我的问题。。。。我需要在服务器端对文档进行排序,因为我正在使用分页。所以我不能将文档带到客户端并对其进行排序,因为它会给我无序的结果。那么,对于CouchDB来说,您的数据结构可能是错误的。为什么要同时查询多个唯一ID?我需要同时查询所有ID,因为我无法每次调用视图来获取对应于单个用户的不同ID。