কম্পিউটার টিউটোরিয়াল

MongoDB Map-Reduce বাস্তবায়ন


Map-reduce হলো বড় পরিমাণ ডেটা উপযোগী অ্যাগ্রিগেটেড ফলাফলে রূপান্তর করার একটি ডেটা প্রসেসিং প্যারাডাইম।

ডকুমেন্টসহ একটি কলেকশন তৈরি করি:

> db.demo280.insertOne({"CustomerName":"Chris","isMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5e49116edd099650a5401a62") }
> db.demo280.insertOne({"CustomerName":"Mike","isMarried":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5e491170dd099650a5401a63") }
> db.demo280.insertOne({"CustomerName":"David","isMarried":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5e491170dd099650a5401a64") }
> db.demo280.insertOne({"CustomerName":"Bob","isMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5e491171dd099650a5401a65") }

find() মেথড দিয়ে সব ডকুমেন্ট দেখান:

> db.demo280.find();

আউটপুট:

{ "_id" : ObjectId("5e49116edd099650a5401a62"), "CustomerName" : "Chris", "isMarried" : true }
{ "_id" : ObjectId("5e491170dd099650a5401a63"), "CustomerName" : "Mike", "isMarried" : false }
{ "_id" : ObjectId("5e491170dd099650a5401a64"), "CustomerName" : "David", "isMarried" : false }
{ "_id" : ObjectId("5e491171dd099650a5401a65"), "CustomerName" : "Bob", "isMarried" : true }

MongoDB map-reduce বাস্তবায়নের কোয়েরি (isMarried true যাদের জন্য গড় বের করা):

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

ফলাফল (২টি ডকুমেন্ট ম্যাচ, ২টি.emit, ১টি রিডিউস আউটপুট):

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

  1. MongoDB-এ ({$natural: 1}) সর্ট অর্ডার বোঝা

  2. MongoDB-এ স্ট্রিং তুলনা: $strcasecmp অপারেটর

  3. MongoDB-তে find()-এ প্রজেকশন দিয়ে _id ফিল্ড হাইড করা

  4. MongoDB-এ মাস ইন্সারশন (insertMany)