Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में mapReduce() फंक्शन का उपयोग करके वैकल्पिक दस्तावेज़ प्रदर्शित करना और सम फील्ड वैल्यू एमिट करना

आइए दस्तावेज़ों के साथ एक कलेक्शन बनाते हैं:

नमूना डेटा बनाना (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 (विषम) -> एमिट, आदि।

  1. - MongoDB: ऐरे वैल्यूज के आधार पर दस्तावेजों को मैच करें जो विशिष्ट मान से अधिक हों

    आप $elemMatch का उपयोग कर सकते हैं। $elemMatch ऑपरेटर उन दस्तावेजों से मेल खाता है जिनमें एक ऐरे फील्ड होता है जिसमें कम से कम एक एलिमेंट होता है जो सभी निर्दिष्ट क्वेरी मानदंडों से मेल खाता है। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo701.insertOne({ListOfValues:[100,200,300]}); { a

  1. - MongoDB 4 में दस्तावेजों को सॉर्ट करें और केवल एक फील्ड प्रदर्शित करें

    MongoDB 4 में दस्तावेजों को सॉर्ट करने के लिए sort() का उपयोग करें। केवल एक फील्ड दिखाने के लिए, जो सॉर्ट की गई है, उसे 1 पर सेट करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo611.insertOne({Name:Chris}); { acknowledged : true, insertedId : ObjectId(5e987110f6b89257f5584d83) } > d

  1. - MongoDB क्वेरी: फॉर्मूला के साथ कलेक्शन में प्रत्येक डॉक्यूमेंट के प्रत्येक फील्ड को अपडेट करें

    कलेक्शन में प्रत्येक डॉक्यूमेंट के प्रत्येक फील्ड को फॉर्मूला के साथ अपडेट करने के लिए MongoDB update() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo749.insertOne({details:[{ id:1,a:10},{id:2,a:5},{id:3,a:20}]}); { acknowledged : true, insertedId : ObjectId(5eae6fb0a930c785c834e565) } find(