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

MongoDB में $match और $group के साथ विशिष्ट की के मानों का योग करना

MongoDB एग्रीगेशन में $match और $group का उपयोग करके योग करना

निर्दिष्ट मानदंडों से मेल खाने वाले डॉक्यूमेंट्स के लिए किसी संख्यात्मक फ़ील्ड का योग निकालने के लिए, एग्रीगेशन पाइपलाइन में $match (फ़िल्टर) के बाद $group के साथ $sum एक्यूमुलेटर का उपयोग करें।

नमूना डेटा

> db.demo329.insertOne({"Name": "Chris", "Age": 21, "Marks": 45});
{ "acknowledged": true, "insertedId": ObjectId("5e516f28f8647eb59e56207d") }
> db.demo329.insertOne({"Name": "David", "Age": 21, "Marks": 56});
{ "acknowledged": true, "insertedId": ObjectId("5e516f28f8647eb59e56207e") }
> db.demo329.insertOne({"Name": "Mike", "Age": 21, "Marks": 78});
{ "acknowledged": true, "insertedId": ObjectId("5e516f29f8647eb59e56207f") }
> db.demo329.insertOne({"Name": "David", "Age": 21, "Marks": 89});
{ "acknowledged": true, "insertedId": ObjectId("5e516f29f8647eb59e562080") }

एग्रीगेशन: नाम "David" और उम्र 21 के लिए कुल अंक

> db.demo329.aggregate([
    {
        $match: {
            $and: [{'Name': 'David'}, {Age: 21}]
        }
    },
    {
        $group: {
            _id: null,
            TotalMarks: {$sum: "$Marks"}
        }
    }
]);

परिणाम

{ "_id": null, "TotalMarks": 145 }

दोनों "David" डॉक्यूमेंट्स (56 + 89 = 145) का योग निकाला गया। _id: null सभी मिलान वाले डॉक्यूमेंट्स को एक ही समूह में रखता है। आप _id: "$Name" का उपयोग करके प्रत्येक नाम के लिए अलग-अलग योग भी प्राप्त कर सकते हैं।

  1. - MongoDB Query - Specific FirstName और LastName वाले Documents Find करना

    Specific FirstName और LastName वाले documents find करने के लिए $and के साथ $in का उपयोग करें। MongoDB find() में implement करें। Collection बनाना > db.demo692.insertOne({FirstName:Chris,LastName:Brown}); { acknowledged : true, insertedId : ObjectId(5ea585dca7e81adc6a0b396a) } > db.demo692.ins

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

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

  1. - MongoDB में किसी फ़ील्ड के सभी मानों को विशिष्ट स्ट्रिंग से अपडेट करना

    कलेक्शन के सभी दस्तावेज़ों में किसी फ़ील्ड का मान बदलने के लिए update() के साथ multi: true (या नए वर्जन में updateMany()) का उपयोग करें। डेमो डेटा > db.demo720.insertOne({SubjectName:MySQL}); > db.demo720.insertOne({SubjectName:Java}); > db.demo720.insertOne({SubjectName:C}); > db.demo7