0

我有一个视图,它发出的值是

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

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

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

任何人都可以建议我如何在一个查询中获得两者????

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

这就是我在 couchdb 中需要的

4

1 回答 1

0

你不能那样做。在 CouchDB 中,您可以通过唯一键或键集进行查询,也可以查询范围。因此,如果您想通过一组唯一 ID 进行查询,而不必在查询中指定它们的创建日期,则不能在键中包含创建日期,因此 CouchDB 无法为您按创建日期排序。在这种情况下,您可以使用唯一 ID 键并在客户端(即查询后)按 created_date 对结果进行排序。

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

于 2012-12-21T12:47:18.753 回答