আনওয়াইন্ড করার অর্থ হল প্রতিটি উপাদানের জন্য একটি নথি আউটপুট করার জন্য ইনপুট নথি থেকে একটি অ্যারে ক্ষেত্রকে বিনির্মাণ করা৷
অ্যারেগুলি আনওয়াইন্ড করতে, MongoDB সমষ্টিতে $unwind ব্যবহার করুন। আসুন প্রথমে নথি-
সহ একটি সংগ্রহ তৈরি করি> db.demo387.insertOne( ... { ... ... "Name" : "101", ... "Details1" : [ ... {Value:100, Value1:50, Value2:40}, ... {Value:200}, ... {Value:300} ... ], ... "Details" : [ ... {Value:100, Value1:30, Value2:26}, ... {Value:200}, ... {Value:300} ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e5d197022064be7ab44e7f8") }
Find() পদ্ধতি -
এর সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন> 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" : { "Value" : 100, "Value1" : 30, "Value2" : 26 } } { "_id" : ObjectId("5e5d197022064be7ab44e7f8"), "Name" : "101", "Details1" : { "Value" : 200 }, "Details" : { "Value" : 200 } } { "_id" : ObjectId("5e5d197022064be7ab44e7f8"), "Name" : "101", "Details1" : { "Value" : 300 }, "Details" : { "Value" : 300 } }