Difference between revisions of "MongoDB InsertData"

From mi-linux
Jump to navigationJump to search
Line 126: Line 126:
  
 
If you are getting errors, check carefully that:
 
If you are getting errors, check carefully that:
* every opening bracket has a closing bracket
+
* every opening bracket has an appropriate closing bracket
 
* the insert statement uses round brackets: ()
 
* the insert statement uses round brackets: ()
 
* an array uses square brackets: []
 
* an array uses square brackets: []

Revision as of 11:23, 10 November 2016

Main Page >> MongoDB >>MongoDB Workbook >> Insert Data

Inserting data

The format for the INSERT command is:

 db.collectionName.insert( 
  {
    keyField_1: 'value1',
    keyField_n: valueN
  }
 )

Note:

  • character and date values must be enclosed in matching single (') or double quotes (").
  • numeric values do not need quotes.
  • keyFields are comma-separated and the value can be a nested document or array.
  • each record is enclosed in curly brackets: {}

Department 10

The following example will create a insert data representing the DEPT/EMP tables seen in the Oracle Sample Data.

Add department 10 and it's employees:

db.deptCollection.insert( 
 {
    deptno: 10, 
    dname: 'ACCOUNTING',
    loc: 'NEW YORK',
    employees: [
     {
        empno: 7782,
        ename: 'CLARK',	
        job: 'MANAGER',
        mgr: 7839, 	
        hiredate: new Date('1989-06-09'),
        sal: 2450
     },
     {
        empno:7839,
        ename: 'KING',
        job: 'PRESIDENT',
        hiredate: new Date('1980-11-17'),
        sal: 5000
      },
      {
        empno: 7934,
        ename: 'MILLER',
        job: 'CLERK',
        mgr: 7782,
        hiredate: new Date('1985-01-23'),
        sal: 1300
      }
    ]
   } 
 )

Assuming you have no error messages, the system should respond with:

 WriteResult({ "nInserted" : 1 })

Department 20

Next add department 20:

db.deptCollection.insert( 
 {
  deptno: 20,
  dname: 'RESEARCH',
  loc: 'DALLAS',
  employees: [
   {
      empno: 7876,
      ename: 'ADAMS',
      job: 'CLERK',
      mgr: 7788,
      hiredate: new Date(),
      sal: 1100
   },
   {
      empno: 7902,
      ename: 'FORD',
      job: 'ANALYST',
      mgr: 7566,
      hiredate: new Date('1991-12-03'),
      sal: 3000
   },
   {
      empno: 7066,
      ename: 'JONES',
      job: 'MANAGER',
      mgr: 7839,
      hiredate: new Date('1991-04-02'),
      sal: 2975
   },
   {
      empno: 7788,
      ename: 'SCOTT',
      job: 'ANALYST',
      mgr: 7566,
      hiredate: new Date('2015-10-16'),
      sal: 3000
   }    
  ]
 }
)

Department 40

Next department 40, which has no employees currently:

db.deptCollection.insert( 
 {
   deptno: 40,
   dname: 'OPERATIONS',
   loc: 'BOSTON'
 }
)

Things to note

If you are getting errors, check carefully that:

  • every opening bracket has an appropriate closing bracket
  • the insert statement uses round brackets: ()
  • an array uses square brackets: []
  • a collection uses curly brackets: {}
    • each element in a nested collection will also use curly brackets
  • each key:value pair are separated by commas, except for the last item
  • strings are enclosed in single or double quotes, e.g., 'myString', or "myString"
  • date strings are enclosed in single/double quotes and the format is 'yyyy-mm-dd' e.g., Date('2016-10-10')
  • use the Date() constructor to create a date datatype
  • date can also be a datetime, e.g., new Date("<yyyy-mm-ddThh:mm:ss>")
  • new Date() will return the current date

Exercise 2.1

  • Compare how you added the above data and how it differs from INSERT records in a relational database
  • Try and add Department 30. Note it has some values for the comm field.

Next Step

Querying the collection