我有「統計」收集這樣的:使用地圖縮小統計收集中的所有文檔?
{ "_id" : ObjectId("4d2407265ff08824e3000001"), "request_uri" : {"netloc":"localhost/8080", "path":"vi/sitelicense"}, "api_key" : "apikey", "request_method" : "POST" }
{ "_id" : ObjectId("4d2551b4ae9fa739640df821"), "request_uri" : {"netloc":"localhost/8080", "path":"vi/sitelicense"}, "api_key" : "apikey", "request_method" : "GET" }
{ "_id" : ObjectId("4d255b115ff08821c2000001"), "request_uri" : {"netloc":"localhost/8080", "path":"vi/sitelicense"}, "api_key" : "apikey", "request_method" : "POST" }
{ "_id" : ObjectId("4d25e8d55ff08814f8000001"), "request_uri" : {"netloc":"localhost/8080", "path":"vi/sitelicense"}, "api_key" : "apikey", "request_method" : "PUT" }
{ "_id" : ObjectId("4d2407265ff08824e3700001"), "request_uri" : {"netloc":"localhost/8080", "path":"vi/sitelicense"}, "api_key" : "apikey", "request_method" : "POST" }
我怎樣才能找到我的「統計」的文件總數收集使用映射精簡操作? 這裏是我的地圖減少操作:
map_number_api_calls = function() {
emit(this._id, 1);
}
reduce_number_api_call = function(k, v) {
var i, sum = 0;
for (i in v) {
sum += v[i];
}
return sum;
}
但上面的地圖,減少操作沒有返回的文檔總數。我需要收集文件的總數,實際上是5.任何示例?
使用map/reduce很容易,但爲什麼要使用map/reduce而不僅僅是db.collection.count()? – 2013-04-26 14:58:37
我必須從同一集合中執行一些其他數據聚合,因此我必須使用map/reduce操作來完成此操作。是否可以安排我的地圖縮小操作?正如你可以看到我的集合中有一些api調用數據,我必須找到分析並將其更新到其他集合? – 2013-04-27 05:49:37