Data modeling in MongoDB

Data in MongoDB has a flexible Schema. Documents in the same Collection need not have the same set of fields or structures, and common fields in Collection Documents can keep different data types.

Data in MongoDB has a flexible Schema. Documents in the same Collection need not have the same set of fields or structures, and common fields in Collection Documents can keep different data types.

Some pay attention while designing schema in MongoDB

Design your Schema according to user requirements.

Combine objects into a Document if you will use those objects together. If not, you should distinguish them (but make sure you don't need to use Join).

Copy data (but there is a limit) because disk space is nothing when compared to calculation time.

Perform Join while recording, do not perform while reading.

Optimize your Schema with frequently used cases.

Perform complex Aggregation in that Schema.

For example

Suppose, a customer needs a database design for his blog site, and below, you see the differences between the Schema design of RDBMS and MongoDB. This website has the following requirements:

Each post has a unique title, description and Url.

Each post may have one or more tags.

Each post has the name of the poster and the total number of likes.

Each post has comments provided by the user along with their name, message, time, and likes.

On each post, there can be 0 or more comments.

In the Schema design of the RDBMS for the above requirements there will be at least three data tables:

Data modeling in MongoDB Picture 1Data modeling in MongoDB Picture 1

While MongoDB's Schema design will only have one Collection Post with the following structure:

 { _id : POST_ID title : TITLE_OF_POST , description : POST_DESCRIPTION , by : POST_BY , url : URL_OF_POST , tags : [ TAG1 , TAG2 , TAG3 ], likes : TOTAL_LIKES , comments : [ { user : 'COMMENT_BY' , message : TEXT , dateCreated : DATE_TIME , like : LIKES }, { user : 'COMMENT_BY' , message : TEXT , dateCreated : DATE_TIME , like : LIKES } ] } 

So while displaying data, in RDBMS you need to combine three tables and in MongoDB will only need to display from a Collection.

According to Tutorialspoint

Previous post: Install MongoDB

Next lesson: Create Database in MongoDB

4 ★ | 2 Vote