MongoDB एग्रीगेशन फ्रेमवर्क से मल्टीडाइमेंशनल ऐरे प्रोजेक्शन
MongoDB में मल्टीडाइमेंशनल (बहुआयामी) ऐरे से विशिष्ट एलिमेंट्स प्रोजेक्ट करने के लिए एग्रीगेशन फ्रेमवर्क का उपयोग करें।
उदाहरण: मल्टीडाइमेंशनल ऐरे वाला डॉक्यूमेंट बनाना
> db.multiDimensionalArrayProjection.insertOne(
... {
... "StudentFirstName" : "Chris",
... "StudentMarks" : [ [98, 99],[56,79] ]
... }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6b75a9cb58ca2b005e66c") }
डॉक्यूमेंट देखना
> db.multiDimensionalArrayProjection.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cc6b75a9cb58ca2b005e66c"), "StudentFirstName" : "Chris", "StudentMarks" : [ [ 98, 99 ], [ 56, 79 ] ] }
मल्टीडाइमेंशनल ऐरे प्रोजेक्शन क्वेरी
दूसरे सब-ऐरे का दूसरा एलिमेंट (इंडेक्स 1,1) प्राप्त करने के लिए:
> db.multiDimensionalArrayProjection.aggregate([
... { $unwind: '$StudentMarks' },
... { $limit: 1 },
... { $project: { _id: 0, StudentMarks: 1 } },
... { $unwind: '$StudentMarks' },
... { $skip: 1 },
... { $limit: 1 }
... ]);
आउटपुट:
{ "StudentMarks" : 99 }
व्याख्या:
- पहला
$unwindबाहरी ऐरे को फ्लैट करता है $limit: 1पहला सब-ऐरे लेता है- दूसरा
$unwindआंतरिक ऐरे को फ्लैट करता है $skip: 1पहला एलिमेंट छोड़ता है$limit: 1दूसरा एलिमेंट (99) लेता है
नोट: MongoDB 4.4+ में $arrayElemAt का उपयोग करके इसे सरल बनाया जा सकता है।