您好所有我想要做的是讓每個不同departmentType的計數:的MongoDB /貓鼬:不能把簡單的MapReduce工作
fnMap = function() {
emit(this.departments.departmentType, {typeCount:1});
}
fnReduce = function(key, values) {
var result = {typeCount: 0};
values.forEach(function(value) {
result.typeCount += value.brandCount;
});
return result;
};
var command = {
mapreduce : "clients",
query : {"departments.departmentType": {$exists: true}},
map : fnMap.toString(),
reduce : fnReduce.toString(),
//sort: {"departments.departmentType":1},
out: {inline: 1}
};
mongoose.connection.db.executeDbCommand(command, function(err, dbres) {
});
當執行命令,dbres.documents [0 ] .results僅包含1個包含部門類型總數的項目,而不是每個部門類型的項目數量及其數量。
任何想法我做錯了什麼?
另外,當我取消註釋SORT行時,出現錯誤「db assertion failure:could not create cursor over ...」,我相信字段名稱是正確寫入的。
什麼是brandCount減少?看起來像一個錯字。應該是typeCount –
我會添加更正mapReduce到我的答案,以防它有用,但你不需要mapReduce在這裏。 –