我有以下文件
{
"Credit_Amount": 99,
"Acc_no": 138,
"Job_No": "esmwga",
"Source_No": "x",
"Temp": 1017,
"Document_No": "gaf",
"Debit_Amount": 67,
"User_Id": "xirbzsewiw"
}
我的地图功能就是这个
function (doc, meta) {
if(doc.Type == "GLEntry")
{
emit([doc.Acc_no,doc.User_Id],[doc.Credit_Amount,doc.Debit_Amount]);
}
}
这是我的缩减功能
function(key,values,rereduce){
var sum1=0,sum2=0;
for(var i=0;i<values.length;++i)
{
sum1+=values[i][0];
sum2+=values[i][1];
}
return ([sum1,sum2])
}
当我传递此密钥时
[138,"xirbzsewiw"]
group level 2
我得到了这个输出
[ 99, 67 ]
但是当我把它作为关键
时[138]
group level 1
我得到空的结果。但我所理解的是,当我给组1级时它将仅使用acc编号进行分组,因此它应该给出相同的输出。我做错了吗?
答案 0 :(得分:1)
Abhi是正确的,指定键的结果集为空,因此reduce也为空。您可以通过查询reduce=false
来检查。
您可能会对使用startkey
和endkey
获取范围的其他问题感到困惑。使用startkey
和endkey
您无需指定精确键,第一次部分匹配将被视为开头或结尾。在您的示例中,如果使用startkey=[138]&endkey=[139]&inclusive_end=false
进行查询,则应该会看到预期的结果。
答案 1 :(得分:0)
以下是我认为可能会发生的事情:
group_level
会对输出进行过滤,即您希望从字符串数组中获取的索引数。您可能希望查看understanding group level view queries,如果您还没有更好地了解group_level