Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Map 重写将令牌转换为整数参数的规则_Map_Couchdb_Reduce_Couchapp_Cloudant - Fatal编程技术网

Map 重写将令牌转换为整数参数的规则

Map 重写将令牌转换为整数参数的规则,map,couchdb,reduce,couchapp,cloudant,Map,Couchdb,Reduce,Couchapp,Cloudant,在与排名记录的想法进行了大量的斗争之后,我最终确定了我的文档基于数字的分数,并根据这些分数对它们进行排序 现在这些数字有了意义,其中前两位数字表示特定类型的文档 因此,为了根据分数对22类型的文档进行排序,我只需查询视图,开始键为220000,结束键为229999 这一切都是伟大的和工程,我的问题发生时,我试图使用url重写 我基本上是想改变路线: /_rewrite/rankings/{doctype} 到 其中xx是{doctype} 我的问题是指定重写规则: [ { "from"

在与排名记录的想法进行了大量的斗争之后,我最终确定了我的文档基于数字的分数,并根据这些分数对它们进行排序

现在这些数字有了意义,其中前两位数字表示特定类型的文档

因此,为了根据分数对22类型的文档进行排序,我只需查询视图,开始键为220000,结束键为229999

这一切都是伟大的和工程,我的问题发生时,我试图使用url重写

我基本上是想改变路线:

/_rewrite/rankings/{doctype}

其中xx是{doctype}

我的问题是指定重写规则:

[
    { "from":"rankings/:doctype",
      "to":"_list/rankings",
      "query": ??? //what will this be?
]
  • 如何通过分别附加0000和9999来构造开始键和结束键

  • 如何指定数值?因为使用placeholder“:doctype”将导致字符串类型而不是数字类型,即使我要修改我的漂亮url以输入开始键和结束键,也会导致查询失败

  • 我通过过滤列表视图中的结果(忽略getRow()中我不感兴趣的文档)解决了这个问题,我关心的是,我现在应该担心列表函数的效率吗

请随意评论我的分类策略。。想知道其他人是如何使用couchdb解决排序和切片问题的 首先,您应该在数组中分别发出类型和分数,而不是将它们串联起来:

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"
    }
  }
]