我有一个名为“username”的键,它在couchDB中存储具有唯一用户ID的用户逻辑记录。现在,我想在Map和Reduce函数的帮助下,使用键“username'”从这些记录中获取唯一的用户计数并返回用户计数。
以下是我目前的功能:
Map:
function (doc) {
if(doc.username){
emit([doc.username],{id: doc.username});
}
}
字符串
Reduce:
function (keys, values, rereduce) {
if(!rereduce){
return values;
}
var array = [];
for(var i=0;i<values.length;i++){
array = array.concat(values[i]);
}
var user = {};
var returning = {};
for(var j=0;j<array.length;j++){
if(!user[array[j].id]){
user[array[j].id] = array[j].con;
} else if(user[array[j].id] != array[j].con) {
returning[user[array[j].id]] = 1;
}
}
array[0]['unique'] = Object.keys(user).length;
array[0]['returning'] = Object.keys(returning).length;
return array;
}
型
输出:
{
"rows": [
{
"key": null,
"value": [
{
"id": "user1",
"unique": 81,
"returning": 66
},
{
"id": "user2"
},
{
"id": "user3"
},
{
"id": "user4"
}
]
}
]
}
型
我得到的是整个条目的详细信息,而不是我只想要唯一和返回用户的计数从关键'username'。
1条答案
按热度按时间d8tt03nd1#
你在这里做的工作太多了
Map:
字符串
reduce:
型
然后在查询视图时提供
group=true
查询参数。