

{"id":49613,"date":"2019-02-17T09:50:37","date_gmt":"2019-02-17T04:20:37","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=49613"},"modified":"2021-05-09T13:07:14","modified_gmt":"2021-05-09T07:37:14","slug":"mongodb-replication-and-sharding","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/","title":{"rendered":"MongoDB Replication &#8211; 2 Major Strategies of Sharding in MongoDB"},"content":{"rendered":"<p>After studying <strong>MongoDB Aggregation<\/strong>, it&#8217;s time to learn MongoDB Replication and Sharding. Replication\u00a0instances that maintain the same data set and MongoDB Sharding consists of 3 parts.<\/p>\n<p>Here, we will explore how to set up a replica set, MongoDB Sharded, and Non-Sharded Collections with their workings.<\/p>\n<p>So, are you ready to explore MongoDB Replication and Sharding?<\/p>\n<h2>What is MongoDB Replication?<\/h2>\n<p>As the name says, MongoDB replication means <em>instances that maintain the same data set<\/em>. It contains several data bearing nodes and optionally one arbiter node.<\/p>\n<p>Out of all the data bearing nodes, only one of them is a primary node while the others are secondary nodes. A primary node can do all the write operations. A replica set containing primary node is can confirm writes with {w: \u201cmajority\u201d}.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-49626 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication.jpg\" alt=\"MongoDB Replication Introduction\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/What-is-mongoDB-replication-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>The secondary nodes replicate the primary one and apply the operations to their respective dataset. When the data is reflected in the second one it also changes on the primary dataset. If the primary node is not available then the secondary nodes from themselves can elect one of them as a primary node.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49627\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication.jpg\" alt=\"Primary node in MongoDB Replication\" width=\"1200\" height=\"369\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication-150x46.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication-300x92.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication-768x236.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication-1024x315.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/primary-mongoDB-replication-520x160.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>Here arbiters do not have a dataset with themselves. Its purpose is to maintain a quorum in a replica set by responding to heartbeat and election requests by other replica members. If your replica set has an even number of members, add an arbiter to obtain a majority of votes in an election for a primary node.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49630\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication.jpg\" alt=\"Second node on MongoDB Replication\" width=\"1200\" height=\"369\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication-150x46.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication-300x92.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication-768x236.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication-1024x315.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/secondary-mongodb-replication-520x160.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<h2>Automatic Failover<\/h2>\n<p>When a primary node does not communicate with other members of the set for a certain period of time i.e. <em>electionTimeoutMills(10 seconds by default) period,<\/em> then an eligible secondary node calls out for an election.<\/p>\n<p>The clusters present over here try to complete the election as fast as possible so that they can return to the normal operations to be performed.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49631\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover.jpg\" alt=\"Automatic Failover replication in MongoDB\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Automcatic-failover-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>Here, the replica set cannot process write operation until the election is completed.<\/p>\n<h2>How to Set Up a Replica Set in MongoDB?<\/h2>\n<p>Here, we will learn how to convert a standalone MongoDB instance to the replica set. Following are the steps to convert:<\/p>\n<ul>\n<li>Shutdown the already running server.<\/li>\n<li>Again start the server by writing the following syntax:<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mongod --port \"PORT\" --dbpath \"YOUR_DB_DATA_PATH\" --replSet \"REPLICA_SET_INSTANCE_NAME\"<\/pre>\n<p>Now, we will take an example to understand it better.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mongod --port 27017 --dbpath \"D:\\set up\\mongodb\\data\" --replSet rs0<\/pre>\n<ul>\n<li>It will start an instance with name <strong>rs0<\/strong>, on port 27017<\/li>\n<li>Now connect this to MongoDB instance.<\/li>\n<li>To initiate a new replica set write the command<strong> rs.initiate().<\/strong><\/li>\n<\/ul>\n<p>Now to add members to replica set we will use the following syntax:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&gt;rs.add(HOST_NAME:PORT)<\/pre>\n<h2>What is MongoDB Sharding?<\/h2>\n<p>A sharded cluster consists of the following components:<\/p>\n<ul>\n<li><strong>shard:<\/strong> They contain the subset of\u00a0sharded data. Each shard can be deployed as a replica set.<\/li>\n<li><strong>mongos:<\/strong> They act as a query router. They also provide an interface between client applications and a sharded cluster.<\/li>\n<li><strong>config server:<\/strong> They store metadata and configuration settings for the cluster. From MongoDB 3.4 onwards config server must be deployed as a replica set (CSRS).<\/li>\n<\/ul>\n<p>The following diagram describes the<strong> interaction of components within a sharded clusters in MongoDB<\/strong>.<\/p>\n<h2><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49632\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding.jpg\" alt=\"Introduction to MongoDB Sharding\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-sharding-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/h2>\n<h2>MongoDB Sharding Strategies<\/h2>\n<p>There are two types of strategies offers by MongoDB Sharding:<\/p>\n<ol>\n<li>Hashed <strong>Sharding<\/strong><\/li>\n<li>Ranged Sharding<\/li>\n<\/ol>\n<h4>i. Hashed Sharding in MongoDB<\/h4>\n<p>It involves computing a hash of the shard key field\u2019s value. Each chunk is assigned a range according to the hash value.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49633\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB.png\" alt=\"Hashed Sharding in MongoDB\" width=\"1200\" height=\"369\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB.png 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB-150x46.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB-300x92.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB-768x236.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB-1024x315.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/hashed-sharding-in-mongoDB-520x160.png 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>Even though the range of shard keys may be close but their hashed values are not on the same chunk. This kind of sharding facilitates even distribution of data.<\/p>\n<h4>ii. Ranged Sharding in MongoDB<\/h4>\n<p>It involves dividing data into ranges based on the shard key values. After that, each chunk is assigned some value based on the shard keys.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49634\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb.png\" alt=\"MongoDB ranged Sharding\" width=\"1200\" height=\"369\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb.png 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb-150x46.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb-300x92.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb-768x236.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb-1024x315.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Ranged-Sharding-in-mongoDb-520x160.png 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>A range of shard keys who are having very close values is supposed to be present in the same chunk. Its efficiency depends upon the shard key chosen. In the worst case shard keys can result in uneven distribution of data, which results in opposition to some benefits of sharding in MongoDB.<\/p>\n<p><strong>Now we will take an example to study MongoDB Sharding.<\/strong><\/p>\n<ul>\n<li>Create a database for config server.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mkdir \/data\/exampledb<\/pre>\n<ul>\n<li>Start the MongoDB instance in configuration mode.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mongod \u2013exampledb ExamplesD: 27019<\/pre>\n<ul>\n<li>Start the mongos instance by specifying the configuration server.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mongos \u2013exampledb ExamplesD: 27019<\/pre>\n<ul>\n<li>From mongo shell connect to mongo\u2019s instance<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mongo \u2013host ServerD \u2013port 27017<\/pre>\n<ul>\n<li>If we have two servers named S1 and S2, which are to be clustered then use the following command.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sh.addShard(\"S1:27017\")\r\nsh.addShard(\"S2:27017\")<\/pre>\n<ul>\n<li>Enable sharding for the database.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sh.enableSharding(Studentdb)<\/pre>\n<ul>\n<li>Enable sharding for collection<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Sh.shardCollection(\"db.Student\" , { \"Studentid\" : 1 , \"StudentName\" : 1})<\/pre>\n<h2>Sharded and Non-Sharded Collections<\/h2>\n<p>A database is a mixture of sharded and unsharded <strong>collections in MongoDB<\/strong>.<\/p>\n<p>MongoDB sharded collections are <em>partitioned and distributed in clusters<\/em>.<\/p>\n<p>MongoDB unsharded collections are <em>stored on a primary shard<\/em>.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Sharded-and-Non-Sharded-Collections-01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49635\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Sharded-and-Non-Sharded-Collections-01.jpg\" alt=\"Sharded and Non-Sharded Collections in MongoDB\" width=\"500\" height=\"500\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Sharded-and-Non-Sharded-Collections-01.jpg 500w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Sharded-and-Non-Sharded-Collections-01-150x150.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Sharded-and-Non-Sharded-Collections-01-300x300.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Sharded-and-Non-Sharded-Collections-01-160x160.jpg 160w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Sharded-and-Non-Sharded-Collections-01-320x320.jpg 320w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p><strong>The connection of a Sharded Cluster:<\/strong><\/p>\n<p>We have to connect the mongos router to interact with any collection in the sharded cluster. It will include both.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-49636\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster.jpg\" alt=\"Connection of a MongoDB Sharded Cluster\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Connection-of-mongoDB-sharded-cluster-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>Hence, we have learned about MongoDB replication and sharding. We studied automatic failure, setting the replica set, and strategies for sharding in MongoDB.\u00a0So, this was all about MongoDB replication and sharding. Hope, you liked our explanation.\u00a0If you have any query, please post it in the comment section.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After studying MongoDB Aggregation, it&#8217;s time to learn MongoDB Replication and Sharding. Replication\u00a0instances that maintain the same data set and MongoDB Sharding consists of 3 parts. Here, we will explore how to set up&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":49660,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[18897,18893,18894,18898,18895,18899,18896],"class_list":["post-49613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mongodb","tag-hashed-sharding","tag-mongodb-replication","tag-mongodb-replication-tutorial","tag-ranged-sharding","tag-replication-in-mongodb","tag-sharded-clusters-in-mongodb","tag-sharding-in-mongodb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MongoDB Replication - 2 Major Strategies of Sharding in MongoDB - DataFlair<\/title>\n<meta name=\"description\" content=\"Learn What is MongoDB replication with automatic failure, setting up replica set. Also, see MongoDB sharding: Hashed, ranged sharding with syntax &amp; example\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MongoDB Replication - 2 Major Strategies of Sharding in MongoDB - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Learn What is MongoDB replication with automatic failure, setting up replica set. Also, see MongoDB sharding: Hashed, ranged sharding with syntax &amp; example\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-17T04:20:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-09T07:37:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Replication-Sharding-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MongoDB Replication - 2 Major Strategies of Sharding in MongoDB - DataFlair","description":"Learn What is MongoDB replication with automatic failure, setting up replica set. Also, see MongoDB sharding: Hashed, ranged sharding with syntax & example","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/","og_locale":"en_US","og_type":"article","og_title":"MongoDB Replication - 2 Major Strategies of Sharding in MongoDB - DataFlair","og_description":"Learn What is MongoDB replication with automatic failure, setting up replica set. Also, see MongoDB sharding: Hashed, ranged sharding with syntax & example","og_url":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2019-02-17T04:20:37+00:00","article_modified_time":"2021-05-09T07:37:14+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Replication-Sharding-01.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"MongoDB Replication &#8211; 2 Major Strategies of Sharding in MongoDB","datePublished":"2019-02-17T04:20:37+00:00","dateModified":"2021-05-09T07:37:14+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/"},"wordCount":838,"commentCount":1,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Replication-Sharding-01.jpg","keywords":["Hashed sharding","MongoDB Replication","MongoDB Replication tutorial","Ranged Sharding","Replication in MongoDB","Sharded clusters in MongoDB","sharding in MongoDB"],"articleSection":["MongoDB Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/","url":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/","name":"MongoDB Replication - 2 Major Strategies of Sharding in MongoDB - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Replication-Sharding-01.jpg","datePublished":"2019-02-17T04:20:37+00:00","dateModified":"2021-05-09T07:37:14+00:00","description":"Learn What is MongoDB replication with automatic failure, setting up replica set. Also, see MongoDB sharding: Hashed, ranged sharding with syntax & example","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Replication-Sharding-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/MongoDB-Replication-Sharding-01.jpg","width":1200,"height":628,"caption":"MongoDB Replication and Sharding"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/mongodb-replication-and-sharding\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"MongoDB Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/mongodb\/"},{"@type":"ListItem","position":3,"name":"MongoDB Replication &#8211; 2 Major Strategies of Sharding in MongoDB"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/49613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=49613"}],"version-history":[{"count":8,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/49613\/revisions"}],"predecessor-version":[{"id":93173,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/49613\/revisions\/93173"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/49660"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=49613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=49613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=49613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}