The emergence of each technology or product has its background, not figment or out of thin air, is to solve specific problems for a particular period of historical development. Let's take a look at what turned out to be a specific problem with MongoDB.
Looking back at the concept of nosql, there are generally two common explanations for nosql, one is not just SQL (not only SQL), and the second is non-relational (non-relatonal). We understand this as a non-relational database. There are many types of non-relational databases, mainly the document store, which is represented by MongoDB, Cassandra is the Columnstore type (Wide column store), and Redis is the key type represented (Key-value Store), and more detailed information can be learned from the Db-engine website.
Now talk about MongoDB situation, MongoDB name origin, HuMONGOUS Database=mongodb, Chinese meaning is huge database, as the name implies, MongoDB is for processing big data, to solve the massive data storage and efficient query use for the mission. It can be seen that its mission is not to replace the relational database, but rather to complement the relational database.
Features of MongoDB:
1. Non-relational
Since it is non-relational, it certainly does not work with complex multi-document (multi-table) cascading queries , if there is such a requirement, we still use relational database bar, MongoDB is not suitable.
2, Model Freedom (schema-free)
MongoDB A DB instance can have multiple collection (collections) (Tables table for the relational database), a collection with multiple document (row row for relational database), the so-called model free, with relational database, say, That is, the number and type of column columns for table tables are indeterminate. Isn't that a surprise? It is true, that is, in a collection of multiple document, each document can have any attribute, and each property can be different types. If the data validation of our program relies heavily on the validation of the background database, MongoDB will definitely get data confusion, conversely, we can get huge freedom, expand the attribute field as needed at any time, and have a stick backstage.
3. Replica set and shard cluster (Replica sets and sharded Clusters)
MongoDB provides replica set and Shard clustering technology, from the innate support of the high scalability of the database and high scalability, can simply use the X86-based small server cluster, provide a powerful processing power, and easy to expand, the current 3.0 version has supported up to 50 replica sets. A shard cluster allows the constant growth of data to consistently provide initial access performance without increasing the speed of access to the system as data grows.
MongoDB's application Scenario