আপনি সমষ্টি ব্যবহার করতে পারেন এবং ম্যাচ প্রয়োগ করার আগে অ্যারে তালিকাটি খুলে ফেলতে পারেন। উপরের ধারণাটি বোঝার জন্য, আসুন আমরা নথি সহ একটি সংগ্রহ তৈরি করি। নথির সাথে একটি সংগ্রহ তৈরি করার প্রশ্নটি নিম্নরূপ:
> db.filterArray.insertOne( { "L": [{ "N":1 }, { "N":2 } , { "N":3 }, { "N":4 }, { "N":5 } ]});
উপরের প্রশ্নটি চালানোর পরে নিম্নলিখিতটি দৃশ্যমান:
{ "acknowledged" : true, "insertedId" : ObjectId("5c6d63f2734e98fc0a434aeb") }
Find() পদ্ধতির সাহায্যে একটি সংগ্রহ থেকে নথি প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ:
> db.filterArray.find().pretty();
নিম্নলিখিত আউটপুট:
{ "_id" : ObjectId("5c6d63f2734e98fc0a434aeb"), "L" : [ { "N" : 1 }, { "N" : 2 }, { "N" : 3 }, { "N" : 4 }, { "N" : 5 } ] }
MongoDB-এর সাথে সাব ডকুমেন্টে অ্যারে ফিল্টার করার জন্য এখানে ক্যোয়ারী রয়েছে। আমরা $gt ব্যবহার করেছি 3 থেকে বড় ক্ষেত্র পেতে:
> db.filterArray.aggregate({ $match:{_id:ObjectId("5c6d63f2734e98fc0a434aeb")}}, { $unwind:'$L'}, {$match:{'L.N':{$gt:3}}}, {$group:{_id:'$_id',subDocument:{$push:'$L.N'}}}).pretty();
নিম্নলিখিত আউটপুট:
{ "_id" : ObjectId("5c6d63f2734e98fc0a434aeb"), "subDocument" : [ 4, 5 ] }