一组复杂键上的CouchDB排序

一组复杂键上的CouchDB排序,couchdb,Couchdb,我很难找到如何查询多个键和按日期排序。 事实上,我想翻译以下SQL: SELECT * FROM THREADS WHERE GROUP_ID IN (1,2,3) ORDER BY THREAD.DATE; 到目前为止,我正在传入查询键=[1,2,3] 这将返回线程,但未对其进行排序 我也可以对它们进行排序,但只能对一个组ID进行排序(具有关键字:[组ID,日期]): startkey=[GROUP\u ID,{}]&endkey=[GROUP\u ID]&descending=true 然

我很难找到如何查询多个键和按日期排序。 事实上,我想翻译以下SQL:

SELECT * FROM THREADS WHERE GROUP_ID IN (1,2,3) ORDER BY THREAD.DATE;
到目前为止,我正在传入查询键=[1,2,3] 这将返回线程,但未对其进行排序

我也可以对它们进行排序,但只能对一个组ID进行排序(具有关键字:[组ID,日期]): startkey=[GROUP\u ID,{}]&endkey=[GROUP\u ID]&descending=true

然而,我不能把它结合起来

有人知道解决办法吗

非常感谢


帕特里克

在这样的日子里,我简直无法把帕特里克的问题传过去:) 尽管关系问题没有简单的解决方案,但您可以使用列表设计(couchDB>=0.10)尝试此解决方案:

您可以这样查询:
curl-g$DB/\u design/test/\u list/filter\u groups/by\u date?groups=[1,3]
,传递所需的组id数组。

在这样的日子里,我根本无法通过Patrick的问题:) 尽管关系问题没有简单的解决方案,但您可以使用列表设计(couchDB>=0.10)尝试此解决方案:

您可以这样查询:
curl-g$DB/\u design/test/\u list/filter\u groups/by\u date?groups=[1,3]
,传递所需的组id数组

{
  "_id": "_design/test",
  "views": {
    "by_date": {
      "map": "function(doc) {
        emit(doc.date, doc);
      }"
    }
  },
  "lists" : {
    "filter_groups" : "function(head, req) { 
      start({
        'headers': {
          'Content-Type': 'application/json'
        }
      });
      var groups = JSON.parse(req.query['groups'] || '[]');
      var row;
      var res = {rows:[]};
      while (row = getRow()) {
        if (groups.indexOf(row.value.group_id) > -1) {
          res.rows.push(row);
        }
      } 
      send(JSON.stringify(res));
    }",
  }
}