一组复杂键上的CouchDB排序
我很难找到如何查询多个键和按日期排序。 事实上,我想翻译以下SQL:一组复杂键上的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 然
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));
}",
}
}