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

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


इसके लिए, $avg के साथ $group और aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं:

> db.demo598.insertOne({
    Information:'Student',
    id:100,
    details:[
        {Name:'Chris',Marks:75},
        {Name:'Bob',Marks:55}
    ]
}); { "acknowledged" : true, "insertedId" : ObjectId("5e947fccf5f1e70e134e2694") }

> db.demo598.insertOne({
    Information:'Student',
    id:101,
    details:[
        {Name:'Chris',Marks:75},
        {Name:'Bob',Marks:45}
    ]
}); { "acknowledged" : true, "insertedId" : ObjectId("5e947fcdf5f1e70e134e2695") }

find() मेथड की मदद से कलेक्शन के सभी दस्तावेज प्रदर्शित करें:

> db.demo598.find();

यह निम्न आउटपुट देगा:

{ "_id" : ObjectId("5e947fccf5f1e70e134e2694"), "Information" : "Student", "id" : 100, "details" : [ { "Name" : "Chris", "Marks" : 75 }, { "Name" : "Bob", "Marks" : 55 } ] }
{ "_id" : ObjectId("5e947fcdf5f1e70e134e2695"), "Information" : "Student", "id" : 101, "details" : [ { "Name" : "Chris", "Marks" : 75 }, { "Name" : "Bob", "Marks" : 45 } ] }

दस्तावेज और ऐरे एलिमेंट्स से औसत प्राप्त करने के लिए क्वेरी:

> db.demo598.aggregate([
    { "$group": {
        "_id": "Information",
        "id": { "$avg": "$id" },
        "details": { "$push": "$details" }
    }},
    { "$unwind": "$details" },
    { "$unwind": "$details" },
    { "$group": {
        "_id": { "Information": "$_id", "Name": "$details.Name" },
        "id": { "$avg": "$id" },
        "AvgValue": { "$avg": "$details.Marks" }
    }},
    { "$sort": { "_id": 1 } },
    { "$group": {
        "_id": "$_id.Information",
        "id": { "$avg": "$id" },
        "details": { "$push": { "Name": "$_id.Name", "MarksAvg": "$AvgValue" } }
    }}
]).pretty();

यह निम्न आउटपुट देगा:

{ "_id" : "Information", "id" : 100.5, "details" : [ { "Name" : "Bob", "MarksAvg" : 50 }, { "Name" : "Chris", "MarksAvg" : 75 } ] }

  1. - MongoDB Document से Email-ID Get करके Print() से Display करना

    इसके लिए email-id values display करने के लिए forEach() के साथ print() का उपयोग करें। Collection बनाना > db.demo690.insertOne({UserName:John,UserEmailId:John@gmail.com}); { acknowledged : true, insertedId : ObjectId(5ea6db31551299a9f98c939c) } > db.demo690.insertOne({UserName:Bob,UserEmailId:B

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

    ऐरे एलिमेंट्स का औसत प्राप्त करने के लिए, $avg का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo584.insertOne({Marks:[75,50,85,60,80]}); { acknowledged : true, insertedId : ObjectId(5e91d827fd2d90c177b5bcc2) } find() मेथड की मदद से कलेक्शन के सभी दस्तावेज प्रदर्शित करें: >

  1. - MongoDB दस्तावेज़ों में विशिष्ट फ़ील्ड के ऐरे एलिमेंट्स काउंट करना

    किसी फ़ील्ड में ऐरे एलिमेंट्स की संख्या गिनने के लिए $size ऑपरेटर का उपयोग करें। डेमो डेटा > db.demo723.insertOne({Subject:[MySQL,MongoDB]}); > db.demo723.insertOne({Subject:[C]}); > db.demo723.insertOne({Subject:[C++,Java,Python]}); क्वेरी db.demo723.aggregate([ { $project: { count: