MongoDB CreateCollection

From mi-linux
Jump to navigationJump to search

Main Page >> MongoDB >>MongoDB Workbook >> Create Collections

Create a Collection

If a collection does not exist, MongoDB creates the collection when you first store data for that collection.

You can create one and set some options:

db.createCollection('deptCollection', {autoIndexID : true})

The following example will create a collection 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-JUN-09'),
        sal: 2450
     },
     {
        empno:7839,
        ename: 'KING',
        job: 'PRESIDENT',
        hiredate: new Date('1980-NOV-17'),
        sal: 5000
      },
      {
        empno: 7934,
        ename: 'MILLER',
        job: 'CLERK',
        mgr: 7782,
        hiredate: new Date('1985-JAN-23'),
        sal: 1300
      }
    ]
   } 
 )

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-DEC-03'),
      sal: 3000
   },
   {
      empno: 7066,
      ename: 'JONES',
      job: 'MANAGER',
      mgr: 7839,
      hiredate: new Date('1991-APR-02'),
      sal: 2975
   },
   {
      empno: 7788,
      ename: 'SCOTT',
      job: 'ANALYST',
      mgr: 7566,
      hiredate: new Date('2015-OCT-16'),
      sal: 3000
   }    
  ]
}
)

Next department 40, which has no employees currently:

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

Exercise 2.1

Try and add Department 30. Note it has some values for the comm field.