Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
多参数CouchDB中的Map/Reduce?_Map_Nosql_Couchdb_Mapreduce - Fatal编程技术网

多参数CouchDB中的Map/Reduce?

多参数CouchDB中的Map/Reduce?,map,nosql,couchdb,mapreduce,Map,Nosql,Couchdb,Mapreduce,我想知道如何使用CouchDB的map/reduce和多个参数。例如,如果我的团队中有年龄和性别的球员,我假设我会为我的地图功能这样做: "function(doc){ if(doc.team_name) { emit(doc.team_name, doc); } }" 但是,我不确定如何编写reduce函数来获取团队中最年长的男性球员或最年轻的女性球员,或者任意查询。我可以在URL中传递参数,还是必须编写多个视图 提前感谢, BenReduce函数有一点不同的用途。Reduc

我想知道如何使用CouchDB的map/reduce和多个参数。例如,如果我的团队中有年龄和性别的球员,我假设我会为我的地图功能这样做:

"function(doc){
  if(doc.team_name) {
    emit(doc.team_name, doc);
  }
}"
但是,我不确定如何编写reduce函数来获取团队中最年长的男性球员或最年轻的女性球员,或者任意查询。我可以在URL中传递参数,还是必须编写多个视图

提前感谢,

Ben

Reduce函数有一点不同的用途。Reduce函数为它处理的所有文档分组一些值。例如,你可以计算球员的工资、年龄或数量

如果您想获得球队中年龄最大的球员,只需将
emit
功能中的键设置为
[球队,年龄]
。视图总是按键排序

function(doc) {
  if (doc.team_name) {
    emit([doc.team_name, doc.age], doc);
  }
}

现在只需查询您的视图。添加参数
descending=true
,因此最老的玩家是第一个。默认情况下,视图顺序为升序。如果您想让特定团队中的球员(仍按年龄排序)添加参数:
startkey=[,999]&endkey=[,0]&descending=true

这样做的结果不是按照团队名称而不是团队年龄排序的列表吗?我的建议是:发射([doc.age,doc.team_name],doc);