我應用地圖減少功能,但面臨一個問題。在一個記錄的情況下,它返回的ID,而不是數= 1地圖減少功能返回ID而不是計數
map_func = """function() {
emit(this.school_id, this.student_id);
}"""
reduce_func = """
function (k, values) {
values.length;
}
"""
如果學校100只有一個學生,那麼它應該返回學校編號100,值= 1,但在這種情況下它返回 schoolid = 100 ,值= 12(12是它在db中的學生ID)。對於其他記錄它工作正常。
map_func = """function() {
emit({this.school_id, this.student_id},{count:1});
}"""
reduce_func = """
function (k, values) {
var count =0 ;
values.forEach(function(v)
{
count += v['count'];
});
return {count:count};
}
"""
map_func2 = """
function() {
emit(this['_id']['school_id'], {count: 1});
}
"""
http://cookbook.mongodb.org/patterns/unique_items_map_reduce/ 我用這個例子,但它使用了兩張地圖,減少功能,所以花了更多的時間。
你錯誤地發出了什麼。你必須發佈你想要的實際最終結果。學校100有1名學生,所以你必須發出1.減少是你添加所有不同的發射值的地方。 –