Fundamentals and Modeling Patterns

“MongoDB: Fundamentals and Modeling Patterns” by Flowygo is a training course on the use of the MongoDB database and modeling of document databases.

The production of data has undergone an exponential growth in recent years, requiring a huge technological effort to manage them. The heterogeneity of the data collected has highlighted some limitations of relational databases. For this reason, and not only for this reason, NoSQL databases have begun to conquer the market. Among these, MongoDB has established itself as the first alternative to relational databases. Its success is due to its features that make it the ideal database to manage data with heterogeneous structures and reduce software production time. Moreover, the use of aggregation pipelines allows to carry out analysis, even complex ones, on data in a very short time. Thanks to the introduction, in the latest versions, of the management of transactions and collections for time series, MongoDB has become a viable alternative to relational databases in different contexts, including Internet Of Things and e-commerce.

One of the features that make MongoDB “special” is schemaless, i.e. the lack of a fixed schema definition of the data. By taking advantage of this feature, it is possible to adapt the representation and structure of the data according to the context and new application functionality. Modeling patterns are used to make data storage and retrieval efficient.

The database is available both on the cloud and as software to be installed on one’s own machines also through container systems such as Docker and Kubernets. There are also other tools that are provided to support the database. Among these we can mention MongoDB Compass, a tool that can help through a simple and intuitive graphical interface to query and analyze the data saved in an instance of MongoDB.

This course aims to introduce students to the world of NoSQL databases by analyzing the main features and functionality of MongoDB. Through a theoretical and practical approach, we will show how to query different types of data, visualize the distribution of data according to different types, create analysis pipelines to extract statistics and model data structures according to the application context.

Course Goals

At the end of the course, participants will be able to install and configure MongoDB on their machines, perform queries and analysis pipelines and model a document database.

In particular, after an introduction to NoSQL databases, the basic concepts of a document database will be described. It will proceed with the illustration of the commands to carry out the operations (CRUD) of insertion, interrogation, updating and cancellation of the data. We will also analyze the different types of indexes available, in order to make efficient queries.

Using MongoDB Compass, you’ll query example collections and analyze data distributions. After introducing the aggregation pipeline and the various operators useful to extract statistics and integrate data from different collections, we will use MongoDB Compass to build aggregation pipelines verifying step by step the various phases.

Next, we will present the possible configurations in MongoDB, with particular attention to the replica set. This configuration allows you to create a MongoDB installation for a production environment that allows data redundancy, high reliability and transaction support. You will illustrate how to create a project in Docker for the deployment of a replica set to be connected to a web application.

Finally, you’ll introduce the modeling patterns aimed at making data reading and writing operations efficient. For each pattern we will analyze the merits and demerits and their possible applications in different application contexts.

Who it is for

The course is aimed at professionals, IT technicians of private companies or public administrations, researchers, university students, teachers and in general to all those who intend to expand their knowledge in terms of management, querying and analysis of heterogeneous data using a NoSQL document database.


For participation is required a good command in the basic use of the computer and a shell (eg Bash for Unix or Mac systems, or Powershell for Windows systems). No programming language experience is required. Prior knowledge related to the use of Docker and the JSON format may be helpful but is not strictly necessary.

The use of a personal computer and a stable internet connection with adequate speed is required. MongoDB, MongoDB Compass and Docker can be installed on PCs running Windows, Linux, Mac OS. There are no special hardware requirements (RAM recommended at least 4 GB, HD at least 50 GB free).


  • Introduction to NoSQL databases
    • History
    • NoSQL database types
  • MongoDB
    • Basic concepts
    • Document Management
      • CRUD operations on documents
      • Indexes management
      • Geospatial queries
    • Aggregation pipeline
      • Filtering
      • Grouping
      • Join operations and graphlookup
      • Statistics
      • Array operations
    • Tools
      • Setting up a MongoDB Atlas account
      • Using MongoDB Compass
    • MongoDB Architecture
      • Replica set
        • Create replica sets using Docker
      • Sharding
      • Security
    • Modeling Patterns
      • Polymorphic model
      • Attribute model
      • Extended reference model
      • Tree model
      • Subsets model
      • Outliers model
      • Buckets model
      • Approximation model
      • Pre-aggregate values model
      • Pre-allocation model
      • Document versioning model
      • Schema versioning model


The course can be conducted either in the classroom or remotely as needed.


The course has a total duration of 21 hours. The organization of the hours provided may vary based on need.

Benefits and material

Software used

During the course you will use the software:

  • MongoDB
  • MongoDB Compass
  • Docker

You will be required to create an account on MongoDB Atlas. MongoDB Atlas is MongoDB’s cloud service that can be used for free for the development of prototypes and/or tutorials.

All the software used, released under different licenses, is completely free and usable without restrictions even within commercial products depending on the version used. The software can be installed on Microsoft Windows, Linux, Mac OS platforms without license limitations.

Request for information