সাবফিল্ডগুলিকে প্রজেকশনে শীর্ষ স্তরে উন্নীত করতে, $objectToArray এবং $arrayToObject ব্যবহার করুন। আসুন প্রথমে ডকুমেন্ট সহ একটি সংগ্রহ তৈরি করি:
> db.promoteSubfieldsDemo.insertOne({'s':10,'y':{'t':20,'u':30,}}); { "acknowledged" : true, "insertedId" : ObjectId("5e038004190a577c668b55d5") }
Find() পদ্ধতির সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করার জন্য নিম্নলিখিত প্রশ্ন রয়েছে -
> db.promoteSubfieldsDemo.find().pretty();
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : ObjectId("5e038004190a577c668b55d5"), "s" : 10, "y" : { "t" : 20, "u" : 30 } }
সমস্ত কী তালিকাভুক্ত না করেই সাবফিল্ডগুলিকে প্রজেকশনে শীর্ষ স্তরে উন্নীত করার জন্য নিম্নোক্ত প্রশ্নটি রয়েছে -
> db.promoteSubfieldsDemo.aggregate([ ... { "$replaceRoot": { ... "newRoot": { ... "$arrayToObject": { ... "$concatArrays": [ ... [{ "k": "s", "v": "$s" }], ... { "$objectToArray": "$y" } ... ] ... } ... } ... }} ... ]);
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "s" : 10, "t" : 20, "u" : 30 }