Querying sharded data
Querying our data using a MongoDB shard is different than a single server deployment or a replica set. Instead of connecting to the single server or the primary of the replica set, we connect to the mongos
router which decides which shard to ask for our data. In this section we will explore how the query router operates and showcase how similar to a replica set this is for the developer, using Ruby.
The query router
The query router, also known as mongos
process, acts as the interface and entry point to our MongoDB cluster. Applications connect to it instead of connecting to the underlying shards and replica sets; mongos
executes queries, gathers results, and passes them to our application.
mongos
doesn't hold any persistent state and is typically low on system resources.
Note
mongos
is typically hosted in the same instance as the application server.
It is acting as a proxy for requests. When a query comes in, mongos
will examine and decide which shards need to execute the...