{"id":21964670,"url":"https://github.com/apollo-level2-web-dev/mastering_mongodb_aggregation_framework","last_synced_at":"2025-03-22T21:25:14.438Z","repository":{"id":167339483,"uuid":"642947629","full_name":"Apollo-Level2-Web-Dev/mastering_mongodb_aggregation_framework","owner":"Apollo-Level2-Web-Dev","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-19T18:04:30.000Z","size":2,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-28T01:17:03.830Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Apollo-Level2-Web-Dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-19T18:04:13.000Z","updated_at":"2024-04-02T00:04:13.000Z","dependencies_parsed_at":"2023-07-07T05:00:21.870Z","dependency_job_id":null,"html_url":"https://github.com/Apollo-Level2-Web-Dev/mastering_mongodb_aggregation_framework","commit_stats":null,"previous_names":["apollo-level2-web-dev/mastering_mongodb_aggregation_framework"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apollo-Level2-Web-Dev%2Fmastering_mongodb_aggregation_framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apollo-Level2-Web-Dev%2Fmastering_mongodb_aggregation_framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apollo-Level2-Web-Dev%2Fmastering_mongodb_aggregation_framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Apollo-Level2-Web-Dev%2Fmastering_mongodb_aggregation_framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Apollo-Level2-Web-Dev","download_url":"https://codeload.github.com/Apollo-Level2-Web-Dev/mastering_mongodb_aggregation_framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245021732,"owners_count":20548393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T12:26:42.407Z","updated_at":"2025-03-22T21:25:14.401Z","avatar_url":"https://github.com/Apollo-Level2-Web-Dev.png","language":null,"readme":"```\ndb.students.aggregate([\n    { $match: { \"scores.type\": \"exam\" } }\n]);\n```\n\n```\ndb.students.aggregate([\n    { $group: { _id: \"$scores.type\" } }\n]);\n\n```\n\n```\ndb.students.aggregate([\n    {$match: {grade:\"F+\"}},\n    {$count: \"FaiL_Korse\"}\n]);\n\n```\n\n```\ndb.students.aggregate([\n    {$sort: {name:1}}\n]);\n\n```\n\n```\ndb.students.aggregate([\n    { $match: { \"scores.type\": \"exam\" } },\n    {$sort: {\n        \"scores.0.score\":-1\n    }}\n]);\n\n```\n\n```\ndb.students.aggregate([\n    { $match: { \"scores.type\": \"exam\" } },\n    { $sort: { \"scores.0.score\": -1 } },\n    {\n        $project: {\n            scores: {\n                $slice: [\"$scores\", 1]\n            }\n        }\n    }\n\n]);\n\n```\n\n```\ndb.students.aggregate([\n    { $match: { \"scores.type\": \"exam\" } },\n    { $sort: { \"scores.0.score\": -1 } },\n    {\n        $project: {\n            scores: {\n                $slice: [\"$scores\", 1]\n            }\n        }\n    },\n\n    { $sort: { \"scores.score\": -1 } }\n\n]);\n\n```\n\n```\ndb.students.aggregate([\n    { $match: { \"scores.type\": \"exam\" } },\n    // { $sort: { \"scores.0.score\": -1 } },\n    // {\n    //     $project: {\n    //         scores: {\n    //             $slice: [\"$scores\", 1]\n    //         }\n    //     }\n    // },\n\n    // { $sort: { \"scores.score\": -1 } },\n    {$unwind: \"$scores\"}\n\n]);\n```\n\n```\ndb.students.aggregate([\n    { $unwind: \"$scores\" },\n    { $match: { \"scores.type\": \"exam\" } }\n]);\n\n```\n\n```\ndb.students.aggregate([\n    { $match: { \"scores.type\": \"exam\" } },\n    { $sort: { \"scores.0.score\": -1 } },\n    {\n        $project: {\n            scores: {\n                $slice: [\"$scores\", 1]\n            }\n        }\n    },\n    {$limit: 100}\n\n]);\n```\n\n```\ndb.students.aggregate([\n    { $unwind: \"$scores\" },\n    { $match: { \"scores.type\": \"exam\" } },\n    {$addFields: {\n        \"examFinalScore\":{\n            $round: [\"$scores.score\",2]\n        }\n    }},\n    {$project: {\n        name:1,examFinalScore:1\n    }}\n]);\n\n```\n\n```\ndb.students.aggregate([\n    { $unwind: \"$scores\" },\n    { $match: { \"scores.type\": \"exam\" } },\n    {\n        $addFields: {\n            \"examFinalScore\": {\n                $round: [\"$scores.score\", 2]\n            }\n        }\n    },\n    {\n        $project: {\n            name: 1, examFinalScore: 1\n        }\n    },\n    {\n        $addFields: {\n            \"grade\": {\n                $switch: {\n                    branches: [\n                        {\n                            case: { $lt: [\"$examFinalScore\", 40] },\n                            then: \"F\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 50] },\n                            then: \"D\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 60] },\n                            then: \"C\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 70] },\n                            then: \"B\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 90] },\n                            then: \"A\"\n                        },\n                        {\n                            case: { $gte: [\"$examFinalScore\", 90] },\n                            then: \"A+\"\n                        }\n                    ],\n                    default: \"\"\n                }\n            }\n        }\n    },\n    { $sort: { examFinalScore: -1 } },\n    {$match: {grade:\"A+\"}},\n    {$out: \"A_plus_pawa_polapans\"}\n]);\n\n\n```\n\n```\ndb.students.aggregate([\n    { $unwind: \"$scores\" },\n    { $match: { \"scores.type\": \"exam\" } },\n    {\n        $addFields: {\n            \"examFinalScore\": {\n                $round: [\"$scores.score\", 2]\n            }\n        }\n    },\n    {\n        $project: {\n            name: 1, examFinalScore: 1\n        }\n    },\n    {\n        $addFields: {\n            \"grade\": {\n                $switch: {\n                    branches: [\n                        {\n                            case: { $lt: [\"$examFinalScore\", 40] },\n                            then: \"F\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 50] },\n                            then: \"D\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 60] },\n                            then: \"C\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 70] },\n                            then: \"B\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 90] },\n                            then: \"A\"\n                        },\n                        {\n                            case: { $gte: [\"$examFinalScore\", 90] },\n                            then: \"A+\"\n                        }\n                    ],\n                    default: \"\"\n                }\n            }\n        }\n    },\n    { $sort: { examFinalScore: -1 } },\n    { $match: { grade: \"A+\" } },\n    {\n        $group: {\n            _id: null,\n            average: { $avg: {$round:\"$examFinalScore\"} }\n        }\n    }\n]);\n\n```\n\n```\ndb.students.aggregate([\n    { $unwind: \"$scores\" },\n    { $match: { \"scores.type\": \"exam\" } },\n    {\n        $addFields: {\n            \"examFinalScore\": {\n                $round: [\"$scores.score\", 2]\n            }\n        }\n    },\n    {\n        $project: {\n            name: 1, examFinalScore: 1\n        }\n    },\n    {\n        $addFields: {\n            \"grade\": {\n                $switch: {\n                    branches: [\n                        {\n                            case: { $lt: [\"$examFinalScore\", 40] },\n                            then: \"F\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 50] },\n                            then: \"D\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 60] },\n                            then: \"C\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 70] },\n                            then: \"B\"\n                        },\n                        {\n                            case: { $lt: [\"$examFinalScore\", 90] },\n                            then: \"A\"\n                        },\n                        {\n                            case: { $gte: [\"$examFinalScore\", 90] },\n                            then: \"A+\"\n                        }\n                    ],\n                    default: \"\"\n                }\n            }\n        }\n    },\n    { $sort: { examFinalScore: -1 } },\n    {\n        $setWindowFields: {\n            sortBy: { examFinalScore: -1 },\n            output: {\n                position: { $rank: {} }\n            }\n        }\n    }, {\n        $setWindowFields: {\n            sortBy: { examFinalScore: -1 },\n            output: {\n                position: { $rank: {} }\n            }\n        }\n    },\n], {\n    allowDiskUse: true\n});\n\n```\n\n```\ndb.students.aggregate([\n    { $match: { \"scores.type\": \"exam\" } },\n    { $project: { \"scores\": 1 } },\n    {\n        $addFields: {\n            \"scores\": {\n                $filter: {\n                    input: \"$scores\",\n                    as: \"score\",\n                    cond: { $eq: [\"$$score.type\", \"exam\"] }\n                }\n            }\n        }\n    },\n    { $unwind: \"$scores\" },\n    { $sort: { \"scores.score\": -1 } },\n    {\n        $group: {\n            _id: \"$_id\",\n            scores: {\n                $push: {\n                    type: \"$scores.type\",\n                    score: { $round: [\"$scores.score\", 2] }\n                }\n            }\n        }\n    },\n    { $project: { \"_id\": 1, \"scores\": 1 } },\n    { $match: { \"scores.type\": \"exam\", \"scores.score\": { $gte: 95 } } },\n    { $sort: { \"scores.score\": -1 } }\n]);\n\n```\n\n```\ndb.userDetails.aggregate([\n    {$match: {email:\"nahidhassanbulbul@gmail.com\"}},\n    {$lookup: {\n           from: \"userDetails\",\n           localField: \"email\",\n           foreignField: \"refferBy\",\n           as: \"reffer by me\"\n         }}\n])\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapollo-level2-web-dev%2Fmastering_mongodb_aggregation_framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapollo-level2-web-dev%2Fmastering_mongodb_aggregation_framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapollo-level2-web-dev%2Fmastering_mongodb_aggregation_framework/lists"}