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

MongoDB में देश, राज्य और शहर के अनुसार कलेक्शन को एग्रीगेट करना

एग्रीगेशन ऑपरेशन कई दस्तावेज़ों से मानों को समूहित करते हैं, और समूहित डेटा पर विभिन्न ऑपरेशन करके एकल परिणाम लौटाते हैं।

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

> db.demo620.insertOne({"Country":"IND","City":"Delhi",state:"Delhi"});
> db.demo620.insertOne({"Country":"IND","City":"Bangalore",state:"Karnataka"});
> db.demo620.insertOne({"Country":"IND","City":"Mumbai",state:"Maharashtra"});

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

> db.demo620.find();
{ "Country" : "IND", "City" : "Delhi", "state" : "Delhi" }
{ "Country" : "IND", "City" : "Bangalore", "state" : "Karnataka" }
{ "Country" : "IND", "City" : "Mumbai", "state" : "Maharashtra" }

देश, राज्य और शहर द्वारा एग्रीगेशन क्वेरी

> db.demo620.aggregate([
  { "$group": {
    "_id": { "Country": "$Country", "state": "$state" },
    "City": { "$addToSet": { "City": "$City" } }
  }},
  { "$group": {
    "_id": "$_id.Country",
    "states": { "$addToSet": { "state": "$_id.state", "City": "$City" } }
  }}
]).pretty();

परिणाम:

{ "_id" : "IND", "states" : [ { "state" : "Delhi", "City" : [ { "City" : "Delhi" } ] }, { "state" : "Maharashtra", "City" : [ { "City" : "Mumbai" } ] }, { "state" : "Karnataka", "City" : [ { "City" : "Bangalore" } ] } ] }

व्याख्या: पहला $group देश और राज्य के अनुसार समूहित करता है और शहरों को सेट में जोड़ता है। दूसरा $group केवल देश के अनुसार समूहित करता है और राज्यों को उनके शहरों के साथ नेस्टेड सेट में जोड़ता है। $addToSet डुप्लिकेट से बचाता है।

  1. - MongoDB क्वेरी: $or में मल्टीपल कंडीशन्स सेट करके दस्तावेज प्राप्त करें

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo711.insertOne({Name:John,Marks:75,Age:21,status:Active}); { acknowledged : true, insertedId : ObjectId(5ea85c215d33e20ed1097b7e) } > db.demo711.insertOne({Name:Chris,Marks:55,Age:22,status:Active}); { acknowledged : true, insertedId : Objec

  1. - MongoDB: एक रिकॉर्ड को सरणी के साथ नए कलेक्शन में कई रिकॉर्ड्स में बदलें?

    इसके लिए $out के साथ aggregate() और $unwind का उपयोग कर सकते हैं। आइए एक कलेक्शन बनाते हैं: > db.demo757.insertOne( { id: 101, Name: [John, Bob, Chris] } ); { acknowledged : true, insertedId : ObjectId(5eb025745637cd592b2a4ae2) } > db.demo757.insertOne( { id: 102, Name: [David] } ); { acknowl

  1. - MongoDB क्वेरी: फॉर्मूला के साथ कलेक्शन में प्रत्येक डॉक्यूमेंट के प्रत्येक फील्ड को अपडेट करें

    कलेक्शन में प्रत्येक डॉक्यूमेंट के प्रत्येक फील्ड को फॉर्मूला के साथ अपडेट करने के लिए MongoDB update() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo749.insertOne({details:[{ id:1,a:10},{id:2,a:5},{id:3,a:20}]}); { acknowledged : true, insertedId : ObjectId(5eae6fb0a930c785c834e565) } find(