खोलने के लिए, प्रत्येक तत्व के लिए एक दस्तावेज़ को आउटपुट करने के लिए इनपुट दस्तावेज़ों से एक सरणी फ़ील्ड को डीकंस्ट्रक्ट करना है।
सरणियों को खोलने के लिए, MongoDB एकत्रीकरण में $अनविंड का उपयोग करें। आइए पहले दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo387.insertOne(... {...... "नाम" :"101",... "विवरण1" :[... {मान:100, मान 1:50, मान 2:40},... {मान:200},... {मान:300}...],... "विवरण" :[... {मान:100, मान1:30, मान2:26}, ... {Value:200},... {Value:300}... ]...}...);{ "स्वीकृत" :true, "insertId" :ObjectId("5e5d197022064be7ab44e7f8")}पूर्व>संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo387.find().pretty();यह निम्नलिखित आउटपुट देगा -
{ "_id" :ObjectId("5e5d197022064be7ab44e7f8"), "Name" :"101", "Details1" :[ { "Value" :100, "Value1" :50, "Value2" :40 }, { " Value" :200 }, { "Value" :300 } ], "Details" :[{"Value" :100, "Value1" :30, "Value2" :26 }, { "Value" :200 }, { " Value" :300 } ]}1 से अधिक सरणी वाले दस्तावेज़ को एकत्रित करने की क्वेरी निम्नलिखित है -
> db.demo387.aggregate([... { "$unwind":"$Details1" },... { "$unwind":"$Details" },... { "$match":{ "$expr":... { "$eq":["$Details1.Value", "$Details.Value"] }... }}... ])यह निम्नलिखित आउटपुट देगा -
{ "_id" :ObjectId("5e5d197022064be7ab44e7f8"), "Name" :"101", "Details1" :{ "Value" :100, "Value1" :50, "Value2" :40 }, "Details" :{ "मान" :100, "मान 1" :30, "मान 2" :26 } }{ "_id" :ObjectId ("5e5d197022064be7ab44e7f8"), "नाम" :"101", "विवरण1" :{ "मान" :200 }, "विवरण" :{ "मान" :200 } }{ "_id" :ObjectId("5e5d197022064be7ab44e7f8"), "नाम" :"101", "विवरण1" :{ "मान" :300 }, "विवरण" :{ "मान" :300 } }