Question: What is sharding in MongoDB?
Sharding is a method for distributing data across multiple machines and its MongoDB's approach to meeting the demands of data growth. With increase of the size of the data, a single machine may not be sufficient to store the data OR read and write data. to fix this problem there are two different methods.
Vertical Scaling: Increase the capacity of single server and increase the power.
- Powerful CPU
- Increase RAM
- Increase storage
Horizontal Scaling: dividing the system dataset and load over multiple servers.
We can use multiple server for storing and read/data data.
Using multiple server is lower cost than single machine with high-end hardware but increase the complexity in infrastructure and maintenance for the deployment.
Question: What are MongoDB Query Capabilities?
- Sorting on one/multiple fields with ascending/descending order.
- Projection (Retrieving only specified fields from each document in the cursor, not the entire document).
- Cursor skip() and limit() to easily implement pagination.
- explain() will return the detail on query will help to optimize the query.
- aggregate() function used for grouping the records. db.users.aggregate([{$match:{gender:"male"}}, { $group: { _id: null, count: { $sum: 1 } } }]);
- $match and $unbind function.
Question: How to database details?
db.stats();
Output
{ "db": "bank", "collections": 4, "objects": 12, "avgObjSize": 245.33333333333334, "dataSize": 2944, "storageSize": 28672, "numExtents": 4, "indexes": 2, "indexSize": 16352, "fileSize": 67108864, "nsSizeMB": 16, "extentFreeList": { "num": 0, "totalSize": 0 }, "dataFileVersion": { "major": 4, "minor": 22 }, "ok": 1 }
Question: How to collection details?
db.users.stats();Output
{ "ns": "bank.users", "count": 5, "size": 2480, "avgObjSize": 496, "numExtents": 1, "storageSize": 8192, "lastExtentSize": 8192, "paddingFactor": 1, "paddingFactorNote": "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.", "userFlags": 1, "capped": false, "nindexes": 1, "totalIndexSize": 8176, "indexSizes": { "_id_": 8176 }, "ok": 1 }