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

MongoDB में $slice एग्रीगेशन से नेस्टेड ऐरे का विशिष्ट एलिमेंट प्राप्त करें

MongoDB एग्रीगेशन में $slice से ऐरे का विशिष्ट एलिमेंट निकालें

$slice ऑपरेटर एग्रीगेशन पाइपलाइन में ऐरे के सबसेट को निकालने के लिए उपयोग होता है। सिंटैक्स: $slice: [array, skip, limit]

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.exactPositionDemo.insertOne({"StudentName":"John","StudentScores":[78,98,56,45,89]});
{ "acknowledged": true, "insertedId": ObjectId("5cd29a1c345990cee87fd883") }

डॉक्यूमेंट देखें

> db.exactPositionDemo.find().pretty();
{
  "_id": ObjectId("5cd29a1c345990cee87fd883"),
  "StudentName": "John",
  "StudentScores": [78, 98, 56, 45, 89]
}

केस 1: इंडेक्स 0 से 1 एलिमेंट लें (पहला एलिमेंट)

> db.exactPositionDemo.aggregate([
  { "$project": { "StudentScores": { "$slice": ["$StudentScores", 0, 1] } } }
]);
{ "_id": ObjectId("5cd29a1c345990cee87fd883"), "StudentScores": [78] }

केस 2: इंडेक्स 1 से 1 एलिमेंट लें (दूसरा एलिमेंट)

> db.exactPositionDemo.aggregate([
  { "$project": { "StudentScores": { "$slice": ["$StudentScores", 1, 1] } } }
]);
{ "_id": ObjectId("5cd29a1c345990cee87fd883"), "StudentScores": [98] }

$slice पैरामीटर समझें

  • array: स्रोत ऐरे ($StudentScores)
  • skip: छोड़ने वाले एलिमेंट की संख्या (0 = पहला, 1 = दूसरा, आदि)
  • limit: वापस करने वाले एलिमेंट की संख्या

अन्य उपयोगी वेरिएशन

  • अंतिम N एलिमेंट: $slice: ["$array", -N]
  • शुरू से N एलिमेंट: $slice: ["$array", N]
  • मध्य से: $slice: ["$array", skip, limit]
  1. - MongoDB Aggregate: इनपुट एलिमेंट से दूसरा एलिमेंट कैसे प्राप्त करें?

    इनपुट एलिमेंट से दूसरा एलिमेंट प्राप्त करने के लिए mapReduce() का उपयोग करें। मैप-रिड्यूस बड़ी मात्रा में डेटा को उपयोगी एग्रीगेटेड परिणामों में संघनित करने के लिए एक डेटा प्रोसेसिंग पैराडाइम है। नमूना डेटा बनाना db.demo621.insert({ _id: 104, Name1: Sam, Name2: John }); सभी दस्तावेज़ देखना db.de

  1. - MongoDB दस्तावेज़ों से पहला ऐरे एलिमेंट प्राप्त करने के लिए ऐरे प्रोजेक्शन

    यदि आप ऐरे से पहला एलिमेंट चाहते हैं, तो $slice के साथ $gte का उपयोग कर सकते हैं। नमूना डेटा बनाना db.demo640.insertOne({Name:Chris,Scores:[85,70,89]}); सभी दस्तावेज़ देखना db.demo640.find(); { Name : John, Scores : [ 80, 90, 75 ] } { Name : Chris, Scores : [ 85, 70, 89 ] } $slice का उपयोग करके

  1. - MongoDB एग्रीगेशन: दस्तावेज और ऐरे एलिमेंट्स से औसत प्राप्त करें

    इसके लिए, $avg के साथ $group और aggregate() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo598.insertOne({ Information:Student, id:100, details:[ {Name:Chris,Marks:75}, {Name:Bob,Marks:55} ] }); { acknowledged : true, insertedId : ObjectId(5e9