2024-10-17 19:49:03 +05:30
|
|
|
## Queries-B2
|
2024-10-16 11:27:45 +05:30
|
|
|
|
2024-10-17 19:49:03 +05:30
|
|
|
### Group A
|
|
|
|
|
|
|
|
> [!NOTE]
|
|
|
|
> Use Employee database created in Assignment B-01 and perform following aggregation operation
|
|
|
|
> Refer [Queries-B1](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Assignment-B1/Queries-B1.md)
|
2024-10-16 11:27:45 +05:30
|
|
|
|
2024-10-17 20:18:19 +05:30
|
|
|
1. Return Designation with Total Salary Above 20000:
|
2024-10-16 11:27:45 +05:30
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
|
|
|
$group: {
|
|
|
|
_id: "$Designation",
|
|
|
|
TotalSalary: { $sum: "$Salary" }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
$match: {
|
2024-10-17 20:18:19 +05:30
|
|
|
TotalSalary: { $gt: 20000 }
|
2024-10-16 11:27:45 +05:30
|
|
|
}
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
2024-10-17 20:18:19 +05:30
|
|
|
2. Find Employee with Total Salary for Each City with Designation "Developer":
|
2024-10-16 11:27:45 +05:30
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
2024-11-09 17:25:42 +05:30
|
|
|
{
|
|
|
|
$match: {
|
|
|
|
Designation: "Developer"
|
2024-10-16 11:27:45 +05:30
|
|
|
}
|
2024-11-09 17:25:42 +05:30
|
|
|
},
|
|
|
|
{
|
|
|
|
$group: {
|
|
|
|
_id: "$Address.PAddr",
|
|
|
|
Total: { $sum: "$Salary" }
|
|
|
|
}
|
|
|
|
}
|
2024-10-16 11:27:45 +05:30
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-11-09 17:25:42 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
2024-10-17 20:18:19 +05:30
|
|
|
3. Find Total Salary of Employee with Designation "Tester" for Each Company:
|
2024-10-16 11:27:45 +05:30
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
2024-10-17 20:18:19 +05:30
|
|
|
$match: { Designation: "Tester" }
|
2024-10-16 11:27:45 +05:30
|
|
|
},
|
|
|
|
{
|
|
|
|
$group: {
|
|
|
|
_id: "$Company_name",
|
|
|
|
TotalSalary: { $sum: "$Salary" }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
4. Returns Names and _id in Upper Case and in Alphabetical Order:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
|
|
|
$project: {
|
|
|
|
_id: 1,
|
|
|
|
Name: { $toUpper: { $concat: ["$Name.FName", " ", "$Name.LName"] } }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
$sort: { Name: 1 }
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
5. Count All Records from Collection:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.countDocuments()
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
6. For Each Unique Designation, Find Avg Salary and Output Sorted by AvgSal:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
|
|
|
$group: {
|
|
|
|
_id: "$Designation",
|
|
|
|
AvgSalary: { $avg: "$Salary" }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
$sort: { AvgSalary: 1 }
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
2024-10-17 20:18:19 +05:30
|
|
|
7. Return Separate Value in the Expertise Array Where Name of Employee is "Aditya":
|
2024-10-16 11:27:45 +05:30
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
2024-10-17 20:18:19 +05:30
|
|
|
$match: { "Name.FName": "Aditya" }
|
2024-10-16 11:27:45 +05:30
|
|
|
},
|
|
|
|
{
|
|
|
|
$unwind: "$Expertise"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
$project: { Expertise: 1 }
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
8. Return Separate Value in the Expertise Array and Return Sum of Each Element of Array:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
|
|
|
$unwind: "$Expertise"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
$group: {
|
|
|
|
_id: "$Expertise",
|
|
|
|
TotalCount: { $sum: 1 }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
9. Return Array for Designation Whose Address is "Pune":
|
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
|
|
|
$match: { "Address.PAddr": { $regex: "Pune" } }
|
|
|
|
},
|
|
|
|
{
|
|
|
|
$project: { Designation: 1 }
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
10. Return Max and Min Salary for Each Company:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.aggregate([
|
|
|
|
{
|
|
|
|
$group: {
|
|
|
|
_id: "$Company_name",
|
|
|
|
MaxSalary: { $max: "$Salary" },
|
|
|
|
MinSalary: { $min: "$Salary" }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
])
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
2024-10-17 19:49:03 +05:30
|
|
|
### Group B
|
|
|
|
|
|
|
|
> [!NOTE]
|
|
|
|
> Use Employee database created in Assignment B-01 and perform following aggregation operation
|
|
|
|
> Refer [Queries-B1](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Assignment-B1/Queries-B1.md)
|
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
|
|
|
|
1. Create Single Field Indexes on Designation:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.createIndex({ Designation: 1 })
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
2. Create Compound Indexes on Name and Age:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.createIndex({ "Name.FName": 1, Age: -1 })
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
3. Create Multikey Indexes on Expertise Array:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.createIndex({ Expertise: 1 })
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
4. Return a List of All Indexes on Collection:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.getIndexes()
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
5. Rebuild Indexes:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.reIndex()
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
6. Drop Index on Remove Specific Index:
|
|
|
|
```mongodb
|
2024-10-17 20:18:19 +05:30
|
|
|
db.Employee.dropIndex("Designation_1")
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|
|
|
|
|
|
|
|
7. Remove All Indexes Except for the _id Index from a Collection:
|
|
|
|
```mongodb
|
|
|
|
db.Employee.dropIndexes()
|
2024-10-17 19:49:03 +05:30
|
|
|
|
2024-10-16 11:27:45 +05:30
|
|
|
```
|