কম্পিউটার টিউটোরিয়াল

MongoDB-তে সাব-ডকুমেন্ট সর্ট করা


ডকুমেন্টসহ একটি কলেকশন তৈরি করি:

> db.demo136.insertOne(
    {
        "Name":"Chris",
        "Details":[
            {
                "Id":"101",
                "EmployeeName":"Mike",
                "EmployeeDetails":[
                    { "EmpId":1001, "Salary":1000 },
                    { "EmpId":1002, "Salary":2000 }
                ]
            },
            {
                "Id":"102",
                "EmployeeName":"David",
                "EmployeeDetails":[
                    { "EmpId":1004, "Salary":4000 },
                    { "EmpId":1005, "Salary":5000 }
                ]
            }
        ]
    }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e31b15cfdf09dd6d085399f") }

find() মেথড দিয়ে সব ডকুমেন্ট দেখান:

> db.demo136.find();

আউটপুট:

{ "_id" : ObjectId("5e31b15cfdf09dd6d085399f"), "Name" : "Chris", "Details" : [ { "Id" : "101", "EmployeeName" : "Mike", "EmployeeDetails" : [ { "EmpId" : 1001, "Salary" : 1000 }, { "EmpId" : 1002, "Salary" : 2000 } ] }, { "Id" : "102", "EmployeeName" : "David", "EmployeeDetails" : [ { "EmpId" : 1004, "Salary" : 4000 }, { "EmpId" : 1005, "Salary" : 5000 } ] } ] }

সাব-ডকুমেন্ট সর্ট করার কোয়েরি (টোটাল স্যালারি অনুযায়ী ডিসেন্ডিং):

> db.demo136.aggregate([
    { $unwind: "$Details" },
    {
        $project: {
            Name: 1,
            Details: 1,
            SalaryTotal: { $sum: "$Details.EmployeeDetails.Salary" }
        }
    },
    { $sort: { SalaryTotal: -1 } },
    {
        $group: {
            _id: "$_id",
            Name: { $first: "$Name" },
            Details: { $push: "$Details" }
        }
    }
]).pretty()

ফলাফল (Details অ্যারে টোটাল স্যালারি অনুযায়ী সর্ট হয়েছে):

{ "_id" : ObjectId("5e31b15cfdf09dd6d085399f"), "Name" : "Chris", "Details" : [ { "Id" : "102", "EmployeeName" : "David", "EmployeeDetails" : [ { "EmpId" : 1004, "Salary" : 4000 }, { "EmpId" : 1005, "Salary" : 5000 } ] }, { "Id" : "101", "EmployeeName" : "Mike", "EmployeeDetails" : [ { "EmpId" : 1001, "Salary" : 1000 }, { "EmpId" : 1002, "Salary" : 2000 } ] } ] }

  1. MongoDB-এ সাব-ডকুমেন্ট ম্যানিপুলেট করা

  2. MongoDB-তে শব্দ অনুযায়ী সর্ট করার পদ্ধতি

  3. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি

  4. MongoDB-এ নেস্টেড অ্যারে সর্ট করা