MongoDB সমষ্টিতে $replaceRoot ব্যবহার করুন। $replaceRoot ইনপুট নথিটিকে নির্দিষ্ট নথির সাথে প্রতিস্থাপন করে। অপারেশনটি _id ক্ষেত্র সহ ইনপুট নথিতে বিদ্যমান সমস্ত ক্ষেত্র প্রতিস্থাপন করে। আসুন নথি-
সহ একটি সংগ্রহ তৈরি করি> db.demo733.insertOne( ... { ... "SubjectDetails": ... [ ... { ... SubjectName:"MongoDB", ... "Marks":85 ... }, ... { ... SubjectName:"MySQL", ... "Marks":90 ... }, ... { ... SubjectName:"PL/SQL", ... "Marks":98 ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5eac6e6156e85a39df5f6342") }
Find() পদ্ধতি -
এর সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন> db.demo733.find();
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : ObjectId("5eac6e6156e85a39df5f6342"), "SubjectDetails" : [ { "SubjectName" : "MongoDB", "Marks" : 85 }, { "SubjectName" : "MySQL", "Marks" : 90 }, { "SubjectName" : "PL/SQL", "Marks" : 98 } ] }
প্যারেন্ট পর্যন্ত এমবেডেড ডক্সের একটি অ্যারে সরানোর জন্য এবং সমষ্টি পাইপলাইনের সাথে কী/মান পরিবর্তন করার জন্য নিম্নলিখিত প্রশ্ন রয়েছে −
> db.demo733.aggregate([ ... { ... $replaceRoot: { ... newRoot: { ... $mergeObjects: [ .. . { _id: "$_id" }, ... { $arrayToObject: { $map: { input: "$SubjectDetails", in: [ "$$this.SubjectName", "$$this.Marks" ] } } } ... ] ... } ... } ... } ... ]).pretty()
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : ObjectId("5eac6e6156e85a39df5f6342"), "MongoDB" : 85, "MySQL" : 90, "PL/SQL" : 98 }