आइए दस्तावेज़ों के साथ एक कलेक्शन बनाते हैं:
नमूना डेटा बनाना (id 1 से 6)
> db.demo636.insert({id:1});
> db.demo636.insert({id:2});
> db.demo636.insert({id:3});
> db.demo636.insert({id:4});
> db.demo636.insert({id:5});
> db.demo636.insert({id:6});
सभी दस्तावेज़ देखना
> db.demo636.find();
{ "id" : 1 }, { "id" : 2 }, { "id" : 3 }, { "id" : 4 }, { "id" : 4 }, { "id" : 5 }, { "id" : 6 }
mapReduce() से केवल विषम id वाले दस्तावेज़ एमिट करने की क्वेरी
> db.demo636.mapReduce(
function () {
oddCounter++;
var id = this._id;
delete this._id;
if ( oddCounter % d != 0 )
emit(id, this );
},
function() {},
{ "scope": { "oddCounter": 0, "d": 2 }, "out": { "inline": 1 } }
)
परिणाम (विषम काउंटर वाले - id 1, 3, 5):
{ "results" : [ { "_id" : ObjectId("..."), "value" : { "id" : 1 } }, { "_id" : ObjectId("..."), "value" : { "id" : 3 } }, { "_id" : ObjectId("..."), "value" : { "id" : 5 } } ], "timeMillis" : 29, "counts" : { "input" : 6, "emit" : 3, "reduce" : 0, "output" : 3 }, "ok" : 1 }
नोट: शीर्षक "सम फील्ड वैल्यू" कहता है लेकिन कोड oddCounter % d != 0 (विषम) एमिट करता है। काउंटर 0 से शुरू होता है: पहला दस्तावेज़ काउंटर=1 (विषम) -> एमिट, दूसरा काउंटर=2 (सम) -> स्किप, तीसरा काउंटर=3 (विषम) -> एमिट, आदि।