Population – references to other collections
MongoDB and Mongoose do not support JOIN
commands as MongoDB is not a relational database. Mongoose gives you an elegant way to achieve similar functionality by using population.
Note
The concept of Population was dramatically expanded upon in Version 3.6 of Mongoose. Older versions won't support everything referenced in this chapter.
Population works by pulling information into the model you're currently using from a second model. Unlike JOIN
statements, these are actually separate queries. First you retrieve your primary set of data from a collection, and once that is returned, you "populate" the required data from a secondary collection. We'll see this in some code very soon.
Defining data for population
The first step to setting up population is in the schema. Your primary schema links to the referenced model by passing an object containing the name of the model to be used and the SchemaType of the linked schema object.
In our application, there...