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

MongoDB में सरणी दस्तावेज़ कैसे एग्रीगेट करें?

MongoDB में सरणी फील्ड के अंदर न्यूनतम/अधिकतम जैसे एग्रीगेशन करने के लिए एग्रीगेशन पाइपलाइन में $min, $max ऑपरेटर का उपयोग सीधे सरणी फील्ड पर करें।

उदाहरण

लॉगिन वर्ष वाली सरणी के साथ दस्तावेज़ बनाएं:

> db.aggregateArrayDemo.insertOne(
  {
    "_id": 100,
    "UserDetails": [
      {"UserName": "John", "UserLoginYear": 2010},
      {"UserName": "Carol", "UserLoginYear": 2019}
    ]
  }
);
{ "acknowledged" : true, "insertedId" : 100 }

दस्तावेज़ देखें:

>> db.aggregateArrayDemo.find().pretty();
{ "_id" : 100, "UserDetails" : [ { "UserName" : "John", "UserLoginYear" : 2010 }, { "UserName" : "Carol", "UserLoginYear" : 2019 } ] }

सरणी में न्यूनतम और अधिकतम लॉगिन वर्ष प्राप्त करें

> db.aggregateArrayDemo.aggregate([
  {$match: {_id: 100}},
  {$project: {
    Minimum: {$min: "$UserDetails.UserLoginYear"},
    Maximum: {$max: "$UserDetails.UserLoginYear"}
  }}
]);

आउटपुट:

{ "_id" : 100, "Minimum" : 2010, "Maximum" : 2019 }

व्याख्या:

  • $match - विशिष्ट दस्तावेज़ फिल्टर करता है (वैकल्पिक)
  • $UserDetails.UserLoginYear - सरणी के सभी ऑब्जेक्ट से UserLoginYear निकालकर सरणी बनाता है: [2010, 2019]
  • $min/$max - उस सरणी पर काम करके न्यूनतम/अधिकतम लौटाता है

अन्य सरणी एग्रीगेशन ऑपरेटर

ऑपरेटरविवरण
$minन्यूनतम मान
$maxअधिकतम मान
$avgऔसत
$sumयोग
$stdDevPopजनसंख्या मानक विचलन
$stdDevSampनमूना मानक विचलन

प्रत्येक उपयोगकर्ता के लिए अलग-अलग एग्रीगेशन

db.aggregateArrayDemo.aggregate([
  {$unwind: "$UserDetails"},
  {$group: {
    _id: "$UserDetails.UserName",
    minYear: {$min: "$UserDetails.UserLoginYear"},
    maxYear: {$max: "$UserDetails.UserLoginYear"}
  }}
])

यह प्रत्येक उपयोगकर्ता के लिए अलग परिणाम देता है (यदि एकाधिक दस्तावेज़/प्रविष्टियां हों)।

  1. - MongoDB क्वेरी: नेस्टेड ऐरे को एग्रीगेट करें

    MongoDB में नेस्टेड ऐरे को एग्रीगेट करने के लिए aggregate() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo441.insertOne( ...    { ... ...       "Name" : "David", ...       "Age" : 21, ... ...     &n

  1. - MongoDB में ऐरे के आधार पर दस्तावेज़ कैसे फ़िल्टर करें?

    ऐरे के आधार पर दस्तावेज़ फ़िल्टर करने के लिए $elemMatch का उपयोग करें। $elemMatch ऑपरेटर उन दस्तावेज़ों से मेल खाता है जिनमें एक ऐरे फ़ील्ड होता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo453.insertOne( ... { _id: 101, details: [ { Name: "David", Marks: 60 }, { Name: "M

  1. - MongoDB Array में Element Remove करना

    Element remove करने के लिए update में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना db.demo541.insertOne({software:{services:[gmail,facebook,yahoo]}}); { acknowledged : true, insertedId : ObjectId(