Map 重写将令牌转换为整数参数的规则
在与排名记录的想法进行了大量的斗争之后,我最终确定了我的文档基于数字的分数,并根据这些分数对它们进行排序 现在这些数字有了意义,其中前两位数字表示特定类型的文档 因此,为了根据分数对22类型的文档进行排序,我只需查询视图,开始键为220000,结束键为229999 这一切都是伟大的和工程,我的问题发生时,我试图使用url重写 我基本上是想改变路线:Map 重写将令牌转换为整数参数的规则,map,couchdb,reduce,couchapp,cloudant,Map,Couchdb,Reduce,Couchapp,Cloudant,在与排名记录的想法进行了大量的斗争之后,我最终确定了我的文档基于数字的分数,并根据这些分数对它们进行排序 现在这些数字有了意义,其中前两位数字表示特定类型的文档 因此,为了根据分数对22类型的文档进行排序,我只需查询视图,开始键为220000,结束键为229999 这一切都是伟大的和工程,我的问题发生时,我试图使用url重写 我基本上是想改变路线: /_rewrite/rankings/{doctype} 到 其中xx是{doctype} 我的问题是指定重写规则: [ { "from"
/_rewrite/rankings/{doctype}
到
其中xx是{doctype}
我的问题是指定重写规则:
[
{ "from":"rankings/:doctype",
"to":"_list/rankings",
"query": ??? //what will this be?
]
- 如何通过分别附加0000和9999来构造开始键和结束键
- 如何指定数值?因为使用placeholder“:doctype”将导致字符串类型而不是数字类型,即使我要修改我的漂亮url以输入开始键和结束键,也会导致查询失败
- 我通过过滤列表视图中的结果(忽略getRow()中我不感兴趣的文档)解决了这个问题,我关心的是,我现在应该担心列表函数的效率吗
emit([doc.type, doc.score], doc);
然后你可以这样重写
[
{
"from" : "rankings/:doctype",
"to" : "_list/rankings/rankings",
"query" : {
"startkey" : [":doctype", 0],
"endkey" : [":doctype", 9999]
},
"formats": {
"doctype" : "int"
}
}
]
我在CouchDB 1.1.1上测试了它,它运行正常
参考文献
本期《JIRA》中包含了相关文件:
正如您所看到的,这个问题在2011年4月得到解决,因此它应该在CouchDB 1.0.3及更高版本中工作。关于我制作排序键的方式,我认为使用数组作为键更加灵活和优雅。但我仍然无法从URL中捕获值并将其用作整数值查询参数。他们似乎总是被引语包围着
[
{
"from" : "rankings/:doctype",
"to" : "_list/rankings/rankings",
"query" : {
"startkey" : [":doctype", 0],
"endkey" : [":doctype", 9999]
},
"formats": {
"doctype" : "int"
}
}
]