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

MongoDB में एग्रीगेट फंक्शन लागू करने के लिए क्वेरी

MongoDB में एग्रीगेट फंक्शन का उपयोग

सबसे पहले, एक कलेक्शन बनाते हैं और उसमें डॉक्यूमेंट्स इन्सर्ट करते हैं:

> db.demo121.insertOne(
    {
        "Id": 101,
        "Details": [
            {
                "SubjectId": "1",
                "SubjectName": "MongoDB",
                "Score": 76
            },
            {
                "SubjectId": "2",
                "SubjectName": "MySQL",
                "Score": 76
            },
            {
                "SubjectId": "3",
                "SubjectName": "Java",
                "Score": 76
            }
        ]
    }
);
{ "acknowledged": true, "insertedId": ObjectId("5e2f1c60140daf4c2a3544b3") }

सभी डॉक्यूमेंट्स देखना

find() मेथड का उपयोग करके सभी डॉक्यूमेंट्स डिस्प्ले करें:

> db.demo121.find();

आउटपुट:

{ "_id": ObjectId("5e2f1c60140daf4c2a3544b3"), "Id": 101, "Details": [ { "SubjectId": "1", "SubjectName": "MongoDB", "Score": 76 }, { "SubjectId": "2", "SubjectName": "MySQL", "Score": 76 }, { "SubjectId": "3", "SubjectName": "Java", "Score": 76 } ] }

एग्रीगेशन पाइपलाइन क्वेरी

निम्न क्वेरी एग्रीगेट फंक्शन को लागू करती है:

> db.demo121.aggregate([
    { "$match": { "Id": 101 } },
    { "$unwind": "$Details" },
    {
        "$group": {
            "_id": "$Details.SubjectId",
            "count": { "$sum": 1 },
            "Details": {
                "$push": {
                    "SubjectName": "$Details.SubjectName"
                }
            }
        }
    },
    {
        "$group": {
            "_id": null,
            "List": {
                "$push": {
                    "SubId": "$_id",
                    "Details": "$Details"
                }
            }
        }
    }
], function (err, out) {
    res.json(out);
});

परिणाम

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

{ "_id": null, "List": [ { "SubId": "3", "Details": [ { "SubjectName": "Java" } ] }, { "SubId": "2", "Details": [ { "SubjectName": "MySQL" } ] }, { "SubId": "1", "Details": [ { "SubjectName": "MongoDB" } ] } ] }

व्याख्या

  • $match: Id 101 वाले डॉक्यूमेंट्स को फ़िल्टर करता है
  • $unwind: Details ऐरे को डी-कंस्ट्रक्ट करता है
  • पहला $group: SubjectId के अनुसार ग्रुप करता है, काउंट और SubjectName जोड़ता है
  • दूसरा $group: सभी परिणामों को एक List ऐरे में संयोजित करता है
  1. - MongoDB में MySQL UNION जैसी क्वेरी कैसे लागू करें?

    दो संग्रहों को UNION करने के लिए समान क्वेरी के लिए, MongoDB में $lookup के साथ aggregate() का उपयोग करें। आइए दस्तावेज़ों के साथ पहला संग्रह बनाएं: > db.demo486.insertOne({_id:1,"Amount":30,"No":4}); { "acknowledged" : true, "insertedId" : 1 } > db.dem

  1. - MongoDB में सरणी में $in लागू करने की क्वेरी

    आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo520.insertOne({ListOfName:[John,Bob]}); { acknowledged : true, insertedId : ObjectId(5e899fb4b3fbf26334ef6114) } > db.demo520.insertOne({ListOfName:[Chris,David]}); { acknowledged : true, insertedId : ObjectId(5e899fbfb3fbf26334ef6115) } > db

  1. - MongoDB Aggregate में $match और $project Implement करना

    $match documents को filter करके केवल matching documents को next pipeline stage में pass करता है। $project requested fields के साथ documents को pipeline के next stage में pass करता है। Collection बनाना > db.demo545.insert({Name:Chris,details:{SubjectScore1:56,SubjectScore2:56}}) WriteResult({ nIn