MongoDB Answers S3
From mi-linux
Jump to navigationJump to searchMain Page >> MongoDB >>MongoDB Workbook >> Exercise Answers - Section 3
You should only look at the answers once you have attempted them yourself!
Answers to Section 3
Exercise 3.1
- Compare how you added the above data and how it differs from INSERT records in a relational database
Think about how this differs from using INSERT statements in Oracle to add the data. An SQL INSERT generally only insert one record at a time to one table.
- * Add Department 30 and its employees as a nested array.
The department document has the following key/values: deptno: 30, dname: SALES and loc: CHICAGO
The employee details are as follows:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
---|---|---|---|---|---|---|---|
7499 | ALLEN | SALESMAN | 7698 | 20-FEB-95 | 1600 | 300 | 30 |
7698 | BLAKE | MANAGER | 7839 | 01-MAY-81 | 2850 | 30 | |
7900 | JAMES | CLERK | 7698 | 03-DEC-81 | 950 | 30 | |
7654 | MARTIN | SALESMAN | 7698 | 28-SEP-93 | 1250 | 1400 | 30 |
7844 | TURNER | SALESMAN | 7698 | 08-SEP-81 | 1500 | 0 | 30 |
7521 | WARD | SALESMAN | 7698 | 22-FEB-94 | 1250 | 500 | 30 |
db.deptCollection.insert( { deptno: 30, dname: 'SALES', loc: 'CHICAGO', employees: [ { empno: 7499, ename: 'ALLEN', job: 'SALESMAN', mgr: 7698, hiredate: new Date('1995-02-20'), sal: 1600, comm: 300 }, { empno: 7698, ename: 'BLAKE', job: 'MANAGER', mgr: 7839, hiredate: new Date('1981-05-01'), sal: 2850 }, { empno: 7900, ename: 'JAMES', job: 'CLERK', mgr: 7698, hiredate: new Date('1981-12-03'), sal: 1600 }, { empno: 7654, ename: 'MARTIN', job: 'SALESMAN', mgr: 7698, hiredate: new Date('1993-09-28'), sal: 1250, comm: 1400 }, { empno: 7844, ename: 'TURNER', job: 'SALESMAN', mgr: 7698, hiredate: new Date('1981-09-08'), sal: 1500, comm: 0 }, { empno: 7521, ename: 'WARD', job: 'SALESMAN', mgr: 7698, hiredate: new Date('1994-02-22'), sal: 1250, comm: 500 } ] })
Exercise 3.2
2.2.1 Update the name of department 40 to: COMPUTING
db.deptCollection.update({deptno:40}, {$set: {dname: 'COMPUTING'}})
2.2.1 Update the salary of employee number 7788 in department 20 to 3500
db.deptCollection.update ( { deptno: 20 , "employees.empno": 7788}, { $set: {"employees.$.sal" : 3500} } )
Always check that your update has worked. As a clue, the system should output a WriteResult, telling you how many records were updated:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Next Step
Return to the Workbook.