Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Triển khai Map-Reduce trong MongoDB

Map-Reduce là mô hình xử lý dữ liệu lớn: map emit key-value, reduce gom nhóm giá trị theo key.

Tạo collection demo280:

> db.demo280.insertOne({"CustomerName":"Chris","isMarried":true});
> db.demo280.insertOne({"CustomerName":"Mike","isMarried":false});
> db.demo280.insertOne({"CustomerName":"David","isMarried":false});
> db.demo280.insertOne({"CustomerName":"Bob","isMarried":true});

Map-Reduce: đếm số người theo isMarried (query chỉ lấy isMarried=true):

> db.demo280.mapReduce(
   function(){emit(this.isMarried,true);},
   function(key,values){return Array.sum(values);},
   {query:{isMarried:true}, out:"Output"}
);

Kết quả: input=2 document khớp query, emit=2, reduce=1, output=1 collection "Output":

{
   "result" : "Output",
   "timeMillis" : 1241,
   "counts" : {"input":2,"emit":2,"reduce":1,"output":1},
   "ok" : 1
}

Lưu ý: Từ MongoDB 5.0+, Map-Reduce deprecated, nên dùng Aggregate Pipeline thay thế.