MongoDB InsertData
Main Page >> MongoDB >>MongoDB Workbook >> Insert Data
Inserting data
The format for the INSERT command is:
db.collectionName.insert( { key_1: 'value1', key_n: valueN } )
Note:
- character and date values must be enclosed in matching single (') or double quotes (").
- numeric values do not need quotes.
- key/value pairs are comma-separated (no comma needed after the last pair)
- each record is enclosed in curly brackets: {}
Department Data
The following examples will create a dept collection that will represent the DEPT table seen in the Oracle Sample Data. We will also include an object id (_id) for each record.
Department 10
Add department 10:
db.dept.insert( { _id: 10, deptno: 10, dname: "ACCOUNTING", loc: "NEW YORK" })
Assuming you have no error messages, the system should respond with:
WriteResult({ "nInserted" : 1 })
Department 20
Next add department 20:
db.dept.insert( { _id: 20, deptno: 20, dname: "RESEARCH", loc: "DALLAS" })
Department 40
Next department 40:
db.dept.insert( { _id: 40, 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: ()
- a collection uses 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"
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
Employee data
The following examples will create a emp collection that will represent the EMP table seen in the Oracle Sample Data.
No object id (_id) is included this time, so you can compare the previous examples against the object id generated automatically in the documents below.
More than one record can be added at a time. The following examples will add several employees for each department.
Department 10 Employees
db.emp.insert( [ { empno: 7782, ename: 'CLARK', job: 'MANAGER', mgr: 7839, hiredate: new Date('1989-06-09'), sal: 2450, deptno: 10 }, { empno:7839, ename: 'KING', job: 'PRESIDENT', hiredate: new Date('1980-11-17'), sal: 5000, deptno: 10 }, { empno: 7934, ename: 'MILLER', job: 'CLERK', mgr: 7782, hiredate: new Date('1985-01-23'), sal: 1300, deptno: 10 } ] )
This time the results returned will be along the lines of:
BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 3, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ]
Department 20 Employees
db.emp.insert( [ { empno: 7876, ename: 'ADAMS', job: 'CLERK', mgr: 7788, hiredate: new Date(), sal: 1100, deptno: 20 }, { empno: 7902, ename: 'FORD', job: 'ANALYST', mgr: 7566, hiredate: new Date('1991-12-03'), sal: 3000, deptno: 20 }, { empno: 7066, ename: 'JONES', job: 'MANAGER', mgr: 7839, hiredate: new Date('1991-04-02'), sal: 2975, deptno: 20 }, { empno: 7788, ename: 'SCOTT', job: 'ANALYST', mgr: 7566, hiredate: new Date('2015-10-16'), sal: 3000, deptno: 20 } ] )
Show the emp collection so far:
db.emp.find().pretty()
Date data types
Dates have been included in the above:
- 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.2
- Try and add the employees for Department 30. Remember this time, some employees will have a commission (COMM)
Next Step
Querying the collection