106 lines
2.4 KiB
Markdown
106 lines
2.4 KiB
Markdown
|
## Queries-B3
|
||
|
|
||
|
> [!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)
|
||
|
|
||
|
1. Return the Total Salary of per Company
|
||
|
```mongodb
|
||
|
db.Employee.mapReduce(
|
||
|
function() {
|
||
|
emit(this.Company_name, this.Salary);
|
||
|
},
|
||
|
function(key, values) {
|
||
|
return Array.sum(values);
|
||
|
},
|
||
|
{ out: "total_salary_per_company" }
|
||
|
);
|
||
|
|
||
|
```
|
||
|
|
||
|
2. Return the Total Salary of Company Name:"Oscorp"
|
||
|
```mongodb
|
||
|
db.Employee.mapReduce(
|
||
|
function() {
|
||
|
if (this.Company_name === "Oscorp") {
|
||
|
emit(this.Company_name, this.Salary);
|
||
|
}
|
||
|
},
|
||
|
function(key, values) {
|
||
|
return Array.sum(values);
|
||
|
},
|
||
|
{ out: "total_salary_oscorp" }
|
||
|
);
|
||
|
|
||
|
```
|
||
|
|
||
|
3. Return the Avg Salary of Company whose address is “Pune".
|
||
|
```mongodb
|
||
|
db.Employee.mapReduce(
|
||
|
function() {
|
||
|
if (this.Address.some(addr => addr.PAddr.includes("Pune"))) {
|
||
|
emit("Pune", this.Salary);
|
||
|
}
|
||
|
},
|
||
|
function(key, values) {
|
||
|
return Array.avg(values);
|
||
|
},
|
||
|
{ out: "avg_salary_pune" }
|
||
|
);
|
||
|
|
||
|
```
|
||
|
|
||
|
4. Return the Total Salary for each Designation of `Wayne Industries`.
|
||
|
```mongodb
|
||
|
db.Employee.mapReduce(
|
||
|
function() {
|
||
|
if (this.Company_name === "Wayne Industries") {
|
||
|
emit(this.Designation, this.Salary);
|
||
|
}
|
||
|
},
|
||
|
function(key, values) {
|
||
|
return Array.sum(values);
|
||
|
},
|
||
|
{ out: "total_salary_wayne" }
|
||
|
);
|
||
|
|
||
|
```
|
||
|
|
||
|
5. Return total count for “State=Maharashtra”
|
||
|
```mongodb
|
||
|
db.Employee.mapReduce(
|
||
|
function() {
|
||
|
this.Address.forEach(function(addr) {
|
||
|
if (addr.LAddr === "Maharashtra") {
|
||
|
emit("Maharashtra", 1);
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
function(key, values) {
|
||
|
return Array.sum(values);
|
||
|
},
|
||
|
{ out: "count_state_maharashtra" }
|
||
|
);
|
||
|
|
||
|
```
|
||
|
|
||
|
6. Return Count for State Telangana and Age greater than 40.
|
||
|
```mongodb
|
||
|
db.Employee.mapReduce(
|
||
|
function() {
|
||
|
if (this.Age > 40) {
|
||
|
this.Address.forEach(function(addr) {
|
||
|
if (addr.LAddr === "Telangana") {
|
||
|
emit("Telangana_Age_Above_40", 1);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
function(key, values) {
|
||
|
return Array.sum(values);
|
||
|
},
|
||
|
{ out: "count_telangana_age_above_40" }
|
||
|
);
|
||
|
|
||
|
```
|