Tôi nhận được MongoDB khá lớn mà tôi cần trích xuất số liệu thống kê và tôi thực hiện việc mua này để chạy truy vấn Map Reduce.Bản đồ MongoDB giảm với truy vấn
Vấn đề bây giờ mà tôi cần phải thu hẹp các truy vấn để sử dụng cho tình trạng ví dụ là:. 'Soạn thảo" thay vì sử dụng toàn bộ bộ sưu tập
Đây là Bản đồ của tôi/Giảm mã (Tôi đang sử dụng CodeIgniter): tôi cố gắng để làm theo các bước cuối cùng trong truy vấn này nhưng tôi không thể có được kết quả vì vậy tôi nghĩ tôi thêm các sai cú pháp:. http://cookbook.mongodb.org/patterns/unique_items_map_reduce/
$map = new MongoCode ("function() {
day = Date.UTC(this.created_at.getFullYear(), this.created_at.getMonth(), this.created_at.getDate());
emit ({day: day, _id: this._id}, {created_at: this.created_at, count: 1});
}");
$reduce = new MongoCode ("function(key , values) {
var count = 0;
values.forEach (function(v) {
count += v['count'];
});
return {count: count};
}");
$outer = $this->cimongo->command (array (
"mapreduce" => "documents",
"map" => $map,
"reduce" => $reduce,
"out" => "stats_results"
));
$map = new MongoCode ("function() {
emit(this['_id']['day'], {count: 1});
}");
$reduce = new MongoCode ("function(key , values) {
var count = 0;
values.forEach (function(v) {
count += v['count'];
});
return {count: count};
}");
$outer = $this->cimongo->command (array (
"mapreduce" => "stats_results",
"map" => $map,
"reduce" => $reduce,
"out" => "stats_results_unique"
));
Ý anh là gì với "tình trạng sử dụng 'soạn thảo'"? Bạn có muốn tránh ánh xạ toàn bộ bảng hay chỉ đủ các phím phát ra với trạng thái đó? Tôi đoán rằng những gì bạn muốn là điều kiện phát ra kết quả dựa trên trường trạng thái. – evnu