

They’ve done an admirable job simplifying the underlying complexity of the Spring framework, while still exposing all of its power. Spring Boot is an easy to use web application framework from Spring that can be used to create enterprise web services and web applications.

Also, because MongoDB produces JSON documents, it has become very popular with many of the JS-based front-ends where Javascript is king and JSON is easily handled. This means that Mongo documents are very flexible (possibly a blessing and a curse, FYI). The structure of the documents is determined by the application and can be changed dynamically, adding or removing fields as needed. Mongo documents are JSON objects and have no predetermined structure on the side of the database. MongoDB is a document-based database that natively stores JSON and was built for distributed scaling. NoSQL databases like MongoDB were developed, to a large degree, to fit the needs of internet scaling where server loads can balloon dramatically and the preferred growth pattern is the replication of servers, not scaling a single monolithic server. This makes them hard to scale and sync across multiple machines. Further, because relational databases grew up pre-internet, they were designed to run on monolithic servers. These structures are strong and tight and not easily changed or customized on a per-record basis (this structure can also be a strength, depending on the use case, but we won’t get too deep into that here). Relational databases, such as SQL, MySQL, Postgres, etc…, store data in large tables with well-defined structures. MongoDB is a NoSQL database, which is a generic term for any non-relational databases and differentiates them from relational databases. This tutorial leverages two technologies that are commonly used to build web services: MongoDB and Java (we’ll actually use Spring Boot).
