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

MongoDB Aggregate: इनपुट एलिमेंट से दूसरा एलिमेंट कैसे प्राप्त करें?

इनपुट एलिमेंट से दूसरा एलिमेंट प्राप्त करने के लिए mapReduce() का उपयोग करें। मैप-रिड्यूस बड़ी मात्रा में डेटा को उपयोगी एग्रीगेटेड परिणामों में संघनित करने के लिए एक डेटा प्रोसेसिंग पैराडाइम है।

नमूना डेटा बनाना

> db.demo621.insert({ _id: 101, Name1: "John", Name2: "John" });
> db.demo621.insert({ _id: 102, Name1: "Bob", Name2: "John" });
> db.demo621.insert({ _id: 103, Name1: "Chris", Name2: "John" });
> db.demo621.insert({ _id: 104, Name1: "Sam", Name2: "John" });

सभी दस्तावेज़ देखना

> db.demo621.find();
{ "_id" : 101, "Name1" : "John", "Name2" : "John" }
{ "_id" : 102, "Name1" : "Bob", "Name2" : "John" }
{ "_id" : 103, "Name1" : "Chris", "Name2" : "John" }
{ "_id" : 104, "Name1" : "Sam", "Name2" : "John" }

दूसरा एलिमेंट प्राप्त करने के लिए MapReduce क्वेरी

> db.demo621.mapReduce(
  function () {
    track++;
    var actualId = this._id;
    delete this._id;
    if ( track % div == 0 )
      emit(actualId, this );
  },
  function() {},
  { "scope": { "track": 0, "div": 2 }, "out": { "inline": 1 } }
)

परिणाम (हर दूसरा दस्तावेज़ - 102 और 104):

{ "results" : [ { "_id" : 102, "value" : { "Name1" : "Bob", "Name2" : "John" } }, { "_id" : 104, "value" : { "Name1" : "Sam", "Name2" : "John" } } ], "timeMillis" : 48, "counts" : { "input" : 4, "emit" : 2, "reduce" : 0, "output" : 2 }, "ok" : 1 }

व्याख्या: scope में track काउंटर और div: 2 सेट करके, हर दूसरा दस्तावेज़ (जब track % 2 == 0) एमिट होता है। यह वैकल्पिक दस्तावेज़ प्राप्त करने का एक तरीका है।

  1. - MongoDB Aggregate का उपयोग करके NAME फील्ड से डुप्लिकेट नामों की फ्रीक्वेंसी कैसे गिनें?

    फ्रीक्वेंसी गिनने के लिए aggregate() में $group के साथ ग्रुप करें। नमूना डेटा बनाना db.demo635.insertOne({Name:Chris}); सभी दस्तावेज़ देखना db.demo635.find(); { Name : Chris } { Name : David } { Name : David } { Name : Chris } { Name : Bob } { Name : Chris } फ्रीक्वेंसी गिनने की एग्रीगेशन क्वेर

  1. - MongoDB Aggregate में $redact का उपयोग करना

    $redact documents के contents को documents themselves में stored information के आधार पर restrict करता है। Aggregate में $cond के साथ $redact का उपयोग कर सकते हैं। Collection बनाना > db.demo546.insertOne({Value1:10,Value2:20}); { acknowledged : true, insertedId : ObjectId(5e8e263f9e5f92834d7f05d7

  1. - MongoDB एग्रीगेशन: दस्तावेज और ऐरे एलिमेंट्स से औसत प्राप्त करें

    इसके लिए, $avg के साथ $group और aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo598.insertOne({ Information:Student, id:100, details:[ {Name:Chris,Marks:75}, {Name:Bob,Marks:55} ] }); { acknowledged : true, insertedId : ObjectId(5e9