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

MongoDB में दो कॉलम्स के आधार पर ग्रुप कैसे करें?

MongoDB में $lookup के साथ दो कॉलम्स के आधार पर ग्रुपिंग

दो कॉलम्स के आधार पर ग्रुप करने के लिए $lookup का उपयोग करें।

कलेक्शन बनाना

> db.demo132.insertOne({"CountryName1":"US","CountryName2":"UK",Value:50});
{ "acknowledged": true, "insertedId": ObjectId("5e31950468e7f832db1a7f75") }
> db.demo132.insertOne({"CountryName1":"UK","CountryName2":"AUS",Value:10});
{ "acknowledged": true, "insertedId": ObjectId("5e31951d68e7f832db1a7f76") }
> db.demo132.insertOne({"CountryName1":"AUS","CountryName2":"US",Value:40});
{ "acknowledged": true, "insertedId": ObjectId("5e31952c68e7f832db1a7f77") }

सभी डॉक्यूमेंट्स

> db.demo132.find();
{ "_id": ObjectId("5e31950468e7f832db1a7f75"), "CountryName1": "US", "CountryName2": "UK", "Value": 50 }
{ "_id": ObjectId("5e31951d68e7f832db1a7f76"), "CountryName1": "UK", "CountryName2": "AUS", "Value": 10 }
{ "_id": ObjectId("5e31952c68e7f832db1a7f77"), "CountryName1": "AUS", "CountryName2": "US", "Value": 40 }

$lookup के साथ ग्रुपिंग क्वेरी

> db.demo132.aggregate([
    {
        "$lookup": {
            "from": "demo132",
            "localField": "CountryName1",
            "foreignField": "CountryName2",
            "as": "out"
        }
    },
    { "$unwind": "$out" },
    {
        "$project": {
            "_id": 0,
            "CountryName1": 1,
            "total": { "$sum": ["$Value", "$out.Value"] }
        }
    }
])

परिणाम

{ "CountryName1": "US", "total": 90 }
{ "CountryName1": "UK", "total": 60 }
{ "CountryName1": "AUS", "total": 50 }

व्याख्या

  • $lookup: समान कलेक्शन से सेल्फ-जॉइन करता है (CountryName1 को CountryName2 से मिलान)
  • localField: वर्तमान डॉक्यूमेंट का फील्ड (CountryName1)
  • foreignField: जॉइन किए गए कलेक्शन का फील्ड (CountryName2)
  • $unwind: जॉइन किए गए ऐरे को फ्लैट करता है
  • $sum: दोनों डॉक्यूमेंट्स के Value जोड़ता है

गणना विवरण

  • US: अपना 50 + UK का 40 (जहां CountryName2=US) = 90
  • UK: अपना 10 + US का 50 (जहां CountryName2=UK) = 60
  • AUS: अपना 40 + UK का 10 (जहां CountryName2=AUS) = 50
  1. - MongoDB Aggregate एकाधिक परिणाम ग्रुप करें?

    एकाधिक परिणाम एग्रीगेट करने के लिए MongoDB में $group का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo765.insertOne( { Name:John, Category:ComputerScience, SubjectName:MongoDB, Marks:75 } ); { acknowledged : true, insertedId : ObjectId(5eb054525637cd592b2a4b01) } > db.demo765.insertOne( { N

  1. - MySQL टेबल को दो कॉलम द्वारा कैसे ऑर्डर करें?

    ORDER BY में एकाधिक कॉलम निर्दिष्ट करके बहु-कॉलम सॉर्टिंग MySQL में, आप ORDER BY क्लॉज में अल्पविराम से अलग करके एक से अधिक कॉलम द्वारा सॉर्ट कर सकते हैं। पहला कॉलम प्राथमिक सॉर्ट होता है, दूसरा द्वितीयक (टाई-ब्रेकर), आदि। सिंटैक्स ORDER BY कॉलम1 [ASC|DESC], कॉलम2 [ASC|DESC], ... उदाहरण 1. टेबल

  1. - MySQL में दो कॉलम को कैसे जोड़ें (Concatenate)?

    दो कॉलम को जोड़ने के लिए, MySQL में CONCAT() फंक्शन का उपयोग करें। सिंटैक्स इस प्रकार है: SELECT CONCAT(yourColumnName1, , yourColumnName2) AS anyVariableName FROM yourTableName; उपरोक्त अवधारणा को समझने के लिए, एक टेबल बनाते हैं। टेबल बनाने का क्वेरी: ); Query OK, 0 rows affected (1.06 sec) अब आ