MongoDB Insert Method (Day 6)

Before reading this article, I highly recommend reading the following previous installments in the series:

Write operations are any type of operation that creates and modifies data. A relational database contains 3 types of write operations. They are Insert, Update and Delete. MongoDB has a number of write operations (in other words Insert, Update, save, Delete, upsert ) that are insert, update and remove data. Each write operation targets a single collection. Each write operation is atomic at the document level.

To remove, save, update and insert operations, we can specify the criteria, or conditions, that identify the documents to update or remove.

This article explains the insert method.

Insert

The Insert method in MongoDB is similar to the “Insert Into” command of Relational Databases. The Insert method inserts a new document into a collection. We can insert single, multiple and embedded documents into collections depending on our preferences or requirements.

Syntax: db.Collection_Name.insert()

Insert Single Document

Insert Single Document

The preceding diagram shows a basic method to insert a single document into a collection. Now we execute some queries in the MongoDB shell.

MongoDB shell

In the preceding example, we insert 3 documents, but only a single document at a time is in the Employee collection.

Insert Multiple Documents

In the previous example, we saw how to insert a single document into a collection. This approach will take time if we have bulk data to insert. For such types, MongoDB provides a method for multiple insertions. Using this method, we can insert multiple documents in a single insert command.

Insert Multiple Document

Let's see an example:

see an example

In the above example, we inserted two documents using a single insert command.

Insert Embedded Document

A document that contains another document as it's key-value pair is known as an Embedded Document. A MongoDB database has a flexible schema, so there is no need to have the same set of fields or structures and common fields in a collection document. The following image provides a basic idea of an embedded document structure.

Document structure

Let's see an example:


Example

Insert_Behaviour

When we add a new document in any collection without specifying the _id field, then MongoDB adds an _id field implicitly. This _Id field uniquely identifies each document. If we provide the _id field explicitly then MongoDB first checks the value of the _Id field. If this _id already exists, then MongoDB will throw an exception.

Let's see an example:

Insert Behaviour

In the above example, we added two documents. In the first document, we didn't specify the _id field, so MongoDB internally adds the _id to the document. In the second document, we provided an external _id field.

Take another example:

add two document

In the preceding example, we tried to insert a new document into a collection. But the value of the _id field already existed, so the MongoDB database throws the error that the ObjectId already exists.

Embedded Document as Alternate of Joins

In a relational database, we use Join to retrieve data from two or more tables. But in MongoDB we don't need a Join, we can use the concept of an embedded document.

Let's see an example of Social Networking Sites that have the following requirements:
  • A user can publish any number of posts.
  • Every post contains a total number of likes.
  • Every post has comments given by other users along with their userId, message, DateTime and like option.
  • Each post can have zero or more comments.
  • A user can comment zero or more times for a post

For such type of scenario, in a Relational Database, we require two tables and some relationship between the tables.

Relational Database

If you want to retrieve information about a post then we must do Join operations as in the following:

perform Join operations

But in MongoDB, we can do that using an Embedded Document. We are not required to maintain a relationship and do any Join operations, as shown in the following:

Embedded Document

If we want to retrieve information about a post, then we can use the following query:

retrieve information about any post

We can see that if we want to insert and retrieve the same information, then we require two tables and a Join operation in a relational database. We can do this using a single Collection in MongoDB that doesn't require Join operations.

In my next article, I will explain other methods for write operations.

Next article >> MongoDB Find Method (Day 7) 
Author
Next » MongoDB Find Method (Day 7)