Difference between revisions of "MongoDB Answers"

From mi-linux
Jump to navigationJump to search
Line 88: Line 88:
  
 
<pre style="color:blue">
 
<pre style="color:blue">
 +
db.deptCollection.update (
 +
{ deptno: 20 , "employees.empno": 7788},
 +
  { $set: {"employees.$.sal" : 3500} } 
 +
)
 +
</pre>
  
 +
Always check that your update has worked. As a clue, the system should output a '''WriteResult''', telling you how many records were updated:
 +
 +
<pre style="color:blue">
 +
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
 
</pre>
 
</pre>
  

Revision as of 17:40, 24 October 2016

Main Page >> MongoDB >>MongoDB Workbook >> Exercise Answers


Answers to Section 2

You should only look at the answers once you have attempted them yourself!

Exercise 2.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.

  • Try and add Department 30. Note it has some values for the comm field.
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 2.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.