我在Mongo DB集合中有400,000個數據。每個Document都有count(number)。我想讀取這些文檔並添加所有數字以獲得total.I使用Node獲取Mongo DB Collection數據.js和貓鼬,然後計算使用for-loop.it總共需要兩分鐘左右,我想在一秒鐘內完成。有沒有什麼辦法可以加速這個過程?我發現mapreduce可以加速這個。什麼是最有效的方法加快這一進程。如何加快MongoDB中的數據讀取速度
我把MongoDB的模型這樣
exports.getDownloads = function(processPD,processDW,responseMDW) {
DailyDowloadsModel.find({},function(err,foundData){
var select;
if (err) {
log.error(clientIP +" - DB Connection downloads failed - error");
res.status(500).send();
}
else {
if(foundData.length == 0){
var responseObject = null;
if(select && select == 'count'){
responseObject = {count: 0};
}
}else {
var responseObject = foundData;
if (select && select == "count") {
responseObject = {count: foundData.length};
}
processPD(processDW,responseObject,responseMDW);
}
}
});
}
樣本文件
{
"_id" : ObjectId("5719ef37264f87331a3d0c54"),
"refunds" : "0",
"downloads" : "6",
"country" : "CA",
"date" : "2013-09-06",
"product_id" : "20600001319328",
"__v" : 0
}
我要計算總的下載。
您的平均文檔有多大?請發佈示例文檔。 – Saleem
我添加一個示例文件 – heshjse
好。計數(數字)在哪裏?正如你在上面的陳述中提到的那樣。 – Saleem