Before we start dealing with relationships between different models, let's cover how to build relationships between the properties of our model and Mongoose.
One of the most common property relationships is validation of what we are saving in our model. This relationship between the value input to the model, and what the model's schema is predefined to allow, helps us by providing an easy to use mechanism to make sure only valid data is saved to MongoDB. Mongoose provides a rich and extensible validation toolkit for handling virtually any type of validation you would want to perform, before persisting it to the database. Validation errors can also be returned in API responses to provide feedback when mistakes are made from the client.
Another powerful feature for extending the capabilities of our models is the use...