Although MongoDB doesn't support joins, it does support the reference of a document to another document using a convention named DBRef. Mongoose includes support for DBRefs using the ObjectID
schema type and the use of the ref
property. Mongoose also supports the population of the parent document with the child document when querying the database.
To understand this better, let's say you create another schema for blog posts called PostSchema
. Because a user authors a blog post, PostSchema
will contain an author
field that will be populated by a User
model instance. So, a PostSchema
will have to look like the following code snippet:
var PostSchema = new Schema({ title: { type: String, required: true }, content: { type: String, required: true }, author: { type: Schema.ObjectId, ref: 'User' } }); mongoose.model('Post', PostSchema);
Notice the ref
property telling Mongoose that the author
field will use the User
model to populate the value...