多参数CouchDB中的Map/Reduce?
我想知道如何使用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
"function(doc){
if(doc.team_name) {
emit(doc.team_name, doc);
}
}"
但是,我不确定如何编写reduce函数来获取团队中最年长的男性球员或最年轻的女性球员,或者任意查询。我可以在URL中传递参数,还是必须编写多个视图
提前感谢,BenReduce函数有一点不同的用途。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);