我试图从这个观点中取回分数
"scores": {
"map": "function(doc) { emit(doc.appName, {_id:doc.username, username:doc.username, credits:doc.credits, avatar:doc.avatar}) }"
},
我传入appname并返回分数。问题是分数不能正确排序。当我尝试对它们进行排序时,它们只按第一个数字排序,所以
1500
50
7
900
正如您所看到的,第一个数字是按ASC排序的,但整数本身并非如此。如果appname是密钥,是否可以让couchdb对分数进行排序?
答案 0 :(得分:1)
是doc.appName
一个字符串?把它变成一个数字:
function(doc) {
emit(parseInt(doc.appName), {_id:doc.username, username:doc.username, credits:doc.credits, avatar:doc.avatar});
// ^^^^^^^^
}
答案 1 :(得分:0)
使用复杂的密钥:
emit([doc.appName, doc.score], null)
然后使用范围查询:
startkey=["app1", 0]&endkey=["app1", {}]