কম্পিউটার

MongoDB-তে সমস্ত কী তালিকাভুক্ত না করে প্রজেকশনে সাবফিল্ডগুলিকে শীর্ষ স্তরে উন্নীত করবেন?


সাবফিল্ডগুলিকে প্রজেকশনে শীর্ষ স্তরে উন্নীত করতে, $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 }

  1. নির্দিষ্ট নেস্টেড বৈশিষ্ট্য MongoDB অভিক্ষেপ?

  2. MongoDB সমষ্টি এবং অভিক্ষেপ?

  3. একটি MongoDB সংগ্রহে সব নাম পান

  4. একটি MongoDB সংগ্রহে সমস্ত কীগুলির নাম পান৷